public class game_api
{
    /// <summary>
    /// 获取ITEM_ENTITY数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <returns>值</returns>
    public static extern Item get_item_entity_list_value(dynamic l,int? i);

    /// <summary>
    /// 设置ITEM_ENTITY数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <param name="v"> 值 </param>
    /// <returns></returns>
    public static extern void set_item_entity_list_value(dynamic l,int? i,Item v);

    /// <summary>
    /// 生成n个值为v的ITEM_ENTITY数组
    /// </summary>
    /// <param name="n"> 长度 </param>
    /// <param name="v"> 值 </param>
    /// <returns>列表</returns>
    public static extern dynamic get_item_entity_n_list(int? n,Item v);

    /// <summary>
    /// 获取ITEM_NAME数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <returns>值</returns>
    public static extern int? get_item_name_list_value(dynamic l,int? i);

    /// <summary>
    /// 设置ITEM_NAME数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <param name="v"> 值 </param>
    /// <returns></returns>
    public static extern void set_item_name_list_value(dynamic l,int? i,int? v);

    /// <summary>
    /// 生成n个值为v的ITEM_NAME数组
    /// </summary>
    /// <param name="n"> 长度 </param>
    /// <param name="v"> 值 </param>
    /// <returns>列表</returns>
    public static extern dynamic get_item_name_n_list(int? n,int? v);

    /// <summary>
    /// 获取ROLE_RES_KEY数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <returns>值</returns>
    public static extern string get_role_res_key_list_value(dynamic l,int? i);

    /// <summary>
    /// 设置ROLE_RES_KEY数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <param name="v"> 值 </param>
    /// <returns></returns>
    public static extern void set_role_res_key_list_value(dynamic l,int? i,string v);

    /// <summary>
    /// 生成n个值为v的ROLE_RES_KEY数组
    /// </summary>
    /// <param name="n"> 长度 </param>
    /// <param name="v"> 值 </param>
    /// <returns>列表</returns>
    public static extern dynamic get_role_res_key_n_list(int? n,string v);

    /// <summary>
    /// 获取UNIT_NAME_POOL数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <returns>值</returns>
    public static extern int? get_unit_name_pool_list_value(dynamic l,int? i);

    /// <summary>
    /// 设置UNIT_NAME_POOL数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <param name="v"> 值 </param>
    /// <returns></returns>
    public static extern void set_unit_name_pool_list_value(dynamic l,int? i,int? v);

    /// <summary>
    /// 生成n个值为v的UNIT_NAME_POOL数组
    /// </summary>
    /// <param name="n"> 长度 </param>
    /// <param name="v"> 值 </param>
    /// <returns>列表</returns>
    public static extern dynamic get_unit_name_pool_n_list(int? n,int? v);

    /// <summary>
    /// 获取ABILITY_NAME数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <returns>值</returns>
    public static extern int? get_ability_name_list_value(dynamic l,int? i);

    /// <summary>
    /// 设置ABILITY_NAME数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <param name="v"> 值 </param>
    /// <returns></returns>
    public static extern void set_ability_name_list_value(dynamic l,int? i,int? v);

    /// <summary>
    /// 生成n个值为v的ABILITY_NAME数组
    /// </summary>
    /// <param name="n"> 长度 </param>
    /// <param name="v"> 值 </param>
    /// <returns>列表</returns>
    public static extern dynamic get_ability_name_n_list(int? n,int? v);

    /// <summary>
    /// 获取UNIT_WRITE_ATTRIBUTE数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <returns>值</returns>
    public static extern string get_unit_write_attribute_list_value(dynamic l,int? i);

    /// <summary>
    /// 设置UNIT_WRITE_ATTRIBUTE数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <param name="v"> 值 </param>
    /// <returns></returns>
    public static extern void set_unit_write_attribute_list_value(dynamic l,int? i,string v);

    /// <summary>
    /// 生成n个值为v的UNIT_WRITE_ATTRIBUTE数组
    /// </summary>
    /// <param name="n"> 长度 </param>
    /// <param name="v"> 值 </param>
    /// <returns>列表</returns>
    public static extern dynamic get_unit_write_attribute_n_list(int? n,string v);

    /// <summary>
    /// 获取MODIFIER数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <returns>值</returns>
    public static extern int? get_modifier_list_value(dynamic l,int? i);

    /// <summary>
    /// 设置MODIFIER数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <param name="v"> 值 </param>
    /// <returns></returns>
    public static extern void set_modifier_list_value(dynamic l,int? i,int? v);

    /// <summary>
    /// 生成n个值为v的MODIFIER数组
    /// </summary>
    /// <param name="n"> 长度 </param>
    /// <param name="v"> 值 </param>
    /// <returns>列表</returns>
    public static extern dynamic get_modifier_n_list(int? n,int? v);

    /// <summary>
    /// 获取PROJECTILE数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <returns>值</returns>
    public static extern int? get_projectile_list_value(dynamic l,int? i);

    /// <summary>
    /// 设置PROJECTILE数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <param name="v"> 值 </param>
    /// <returns></returns>
    public static extern void set_projectile_list_value(dynamic l,int? i,int? v);

    /// <summary>
    /// 生成n个值为v的PROJECTILE数组
    /// </summary>
    /// <param name="n"> 长度 </param>
    /// <param name="v"> 值 </param>
    /// <returns>列表</returns>
    public static extern dynamic get_projectile_n_list(int? n,int? v);

    /// <summary>
    /// 获取DAMAGE_TYPE数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <returns>值</returns>
    public static extern int? get_damage_type_list_value(dynamic l,int? i);

    /// <summary>
    /// 设置DAMAGE_TYPE数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <param name="v"> 值 </param>
    /// <returns></returns>
    public static extern void set_damage_type_list_value(dynamic l,int? i,int? v);

    /// <summary>
    /// 生成n个值为v的DAMAGE_TYPE数组
    /// </summary>
    /// <param name="n"> 长度 </param>
    /// <param name="v"> 值 </param>
    /// <returns>列表</returns>
    public static extern dynamic get_damage_type_n_list(int? n,int? v);

    /// <summary>
    /// 获取SFX_KEY数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <returns>值</returns>
    public static extern int? get_sfx_key_list_value(dynamic l,int? i);

    /// <summary>
    /// 设置SFX_KEY数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <param name="v"> 值 </param>
    /// <returns></returns>
    public static extern void set_sfx_key_list_value(dynamic l,int? i,int? v);

    /// <summary>
    /// 生成n个值为v的SFX_KEY数组
    /// </summary>
    /// <param name="n"> 长度 </param>
    /// <param name="v"> 值 </param>
    /// <returns>列表</returns>
    public static extern dynamic get_sfx_key_n_list(int? n,int? v);

    /// <summary>
    /// 获取UI_COMP数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <returns>值</returns>
    public static extern string get_ui_comp_list_value(dynamic l,int? i);

    /// <summary>
    /// 设置UI_COMP数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <param name="v"> 值 </param>
    /// <returns></returns>
    public static extern void set_ui_comp_list_value(dynamic l,int? i,string v);

    /// <summary>
    /// 生成n个值为v的UI_COMP数组
    /// </summary>
    /// <param name="n"> 长度 </param>
    /// <param name="v"> 值 </param>
    /// <returns>列表</returns>
    public static extern dynamic get_ui_comp_n_list(int? n,string v);

    /// <summary>
    /// 获取UI_COMP_TYPE数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <returns>值</returns>
    public static extern int? get_ui_comp_type_list_value(dynamic l,int? i);

    /// <summary>
    /// 设置UI_COMP_TYPE数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <param name="v"> 值 </param>
    /// <returns></returns>
    public static extern void set_ui_comp_type_list_value(dynamic l,int? i,int? v);

    /// <summary>
    /// 生成n个值为v的UI_COMP_TYPE数组
    /// </summary>
    /// <param name="n"> 长度 </param>
    /// <param name="v"> 值 </param>
    /// <returns>列表</returns>
    public static extern dynamic get_ui_comp_type_n_list(int? n,int? v);

    /// <summary>
    /// 获取UI_COMP_EVENT_TYPE数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <returns>值</returns>
    public static extern int? get_ui_comp_event_type_list_value(dynamic l,int? i);

    /// <summary>
    /// 设置UI_COMP_EVENT_TYPE数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <param name="v"> 值 </param>
    /// <returns></returns>
    public static extern void set_ui_comp_event_type_list_value(dynamic l,int? i,int? v);

    /// <summary>
    /// 生成n个值为v的UI_COMP_EVENT_TYPE数组
    /// </summary>
    /// <param name="n"> 长度 </param>
    /// <param name="v"> 值 </param>
    /// <returns>列表</returns>
    public static extern dynamic get_ui_comp_event_type_n_list(int? n,int? v);

    /// <summary>
    /// 获取CAMERA数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <returns>值</returns>
    public static extern Camera get_camera_list_value(dynamic l,int? i);

    /// <summary>
    /// 设置CAMERA数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <param name="v"> 值 </param>
    /// <returns></returns>
    public static extern void set_camera_list_value(dynamic l,int? i,Camera v);

    /// <summary>
    /// 生成n个值为v的CAMERA数组
    /// </summary>
    /// <param name="n"> 长度 </param>
    /// <param name="v"> 值 </param>
    /// <returns>列表</returns>
    public static extern dynamic get_camera_n_list(int? n,Camera v);

    /// <summary>
    /// 获取MODIFIER_ENTITY数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <returns>值</returns>
    public static extern ModifierEntity get_modifier_entity_list_value(dynamic l,int? i);

    /// <summary>
    /// 设置MODIFIER_ENTITY数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <param name="v"> 值 </param>
    /// <returns></returns>
    public static extern void set_modifier_entity_list_value(dynamic l,int? i,ModifierEntity v);

    /// <summary>
    /// 生成n个值为v的MODIFIER_ENTITY数组
    /// </summary>
    /// <param name="n"> 长度 </param>
    /// <param name="v"> 值 </param>
    /// <returns>列表</returns>
    public static extern dynamic get_modifier_entity_n_list(int? n,ModifierEntity v);

    /// <summary>
    /// 获取PROJECTILE_ENTITY数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <returns>值</returns>
    public static extern ProjectileEntity get_projectile_entity_list_value(dynamic l,int? i);

    /// <summary>
    /// 设置PROJECTILE_ENTITY数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <param name="v"> 值 </param>
    /// <returns></returns>
    public static extern void set_projectile_entity_list_value(dynamic l,int? i,ProjectileEntity v);

    /// <summary>
    /// 生成n个值为v的PROJECTILE_ENTITY数组
    /// </summary>
    /// <param name="n"> 长度 </param>
    /// <param name="v"> 值 </param>
    /// <returns>列表</returns>
    public static extern dynamic get_projectile_entity_n_list(int? n,ProjectileEntity v);

    /// <summary>
    /// 获取AUDIO_KEY数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <returns>值</returns>
    public static extern int? get_audio_key_list_value(dynamic l,int? i);

    /// <summary>
    /// 设置AUDIO_KEY数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <param name="v"> 值 </param>
    /// <returns></returns>
    public static extern void set_audio_key_list_value(dynamic l,int? i,int? v);

    /// <summary>
    /// 生成n个值为v的AUDIO_KEY数组
    /// </summary>
    /// <param name="n"> 长度 </param>
    /// <param name="v"> 值 </param>
    /// <returns>列表</returns>
    public static extern dynamic get_audio_key_n_list(int? n,int? v);

    /// <summary>
    /// 获取TEXTURE数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <returns>值</returns>
    public static extern int? get_texture_list_value(dynamic l,int? i);

    /// <summary>
    /// 设置TEXTURE数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <param name="v"> 值 </param>
    /// <returns></returns>
    public static extern void set_texture_list_value(dynamic l,int? i,int? v);

    /// <summary>
    /// 生成n个值为v的TEXTURE数组
    /// </summary>
    /// <param name="n"> 长度 </param>
    /// <param name="v"> 值 </param>
    /// <returns>列表</returns>
    public static extern dynamic get_texture_n_list(int? n,int? v);

    /// <summary>
    /// 获取UNIT_NAME数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <returns>值</returns>
    public static extern int? get_unit_name_list_value(dynamic l,int? i);

    /// <summary>
    /// 设置UNIT_NAME数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <param name="v"> 值 </param>
    /// <returns></returns>
    public static extern void set_unit_name_list_value(dynamic l,int? i,int? v);

    /// <summary>
    /// 生成n个值为v的UNIT_NAME数组
    /// </summary>
    /// <param name="n"> 长度 </param>
    /// <param name="v"> 值 </param>
    /// <returns>列表</returns>
    public static extern dynamic get_unit_name_n_list(int? n,int? v);

    /// <summary>
    /// 获取MODEL数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <returns>值</returns>
    public static extern int? get_model_list_value(dynamic l,int? i);

    /// <summary>
    /// 设置MODEL数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <param name="v"> 值 </param>
    /// <returns></returns>
    public static extern void set_model_list_value(dynamic l,int? i,int? v);

    /// <summary>
    /// 生成n个值为v的MODEL数组
    /// </summary>
    /// <param name="n"> 长度 </param>
    /// <param name="v"> 值 </param>
    /// <returns>列表</returns>
    public static extern dynamic get_model_n_list(int? n,int? v);

    /// <summary>
    /// 获取STORE_KEY数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <returns>值</returns>
    public static extern int? get_store_key_list_value(dynamic l,int? i);

    /// <summary>
    /// 设置STORE_KEY数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <param name="v"> 值 </param>
    /// <returns></returns>
    public static extern void set_store_key_list_value(dynamic l,int? i,int? v);

    /// <summary>
    /// 生成n个值为v的STORE_KEY数组
    /// </summary>
    /// <param name="n"> 长度 </param>
    /// <param name="v"> 值 </param>
    /// <returns>列表</returns>
    public static extern dynamic get_store_key_n_list(int? n,int? v);

    /// <summary>
    /// 获取SFX_ENTITY数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <returns>值</returns>
    public static extern Sfx get_sfx_entity_list_value(dynamic l,int? i);

    /// <summary>
    /// 设置SFX_ENTITY数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <param name="v"> 值 </param>
    /// <returns></returns>
    public static extern void set_sfx_entity_list_value(dynamic l,int? i,Sfx v);

    /// <summary>
    /// 生成n个值为v的SFX_ENTITY数组
    /// </summary>
    /// <param name="n"> 长度 </param>
    /// <param name="v"> 值 </param>
    /// <returns>列表</returns>
    public static extern dynamic get_sfx_entity_n_list(int? n,Sfx v);

    /// <summary>
    /// 获取ROAD_GROUP数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <returns>值</returns>
    public static extern RoadGroup get_road_group_list_value(dynamic l,int? i);

    /// <summary>
    /// 设置ROAD_GROUP数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <param name="v"> 值 </param>
    /// <returns></returns>
    public static extern void set_road_group_list_value(dynamic l,int? i,RoadGroup v);

    /// <summary>
    /// 生成n个值为v的ROAD_GROUP数组
    /// </summary>
    /// <param name="n"> 长度 </param>
    /// <param name="v"> 值 </param>
    /// <returns>列表</returns>
    public static extern dynamic get_road_group_n_list(int? n,RoadGroup v);

    /// <summary>
    /// 获取POLYGON数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <returns>值</returns>
    public static extern PolyArea get_polygon_list_value(dynamic l,int? i);

    /// <summary>
    /// 设置POLYGON数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <param name="v"> 值 </param>
    /// <returns></returns>
    public static extern void set_polygon_list_value(dynamic l,int? i,PolyArea v);

    /// <summary>
    /// 生成n个值为v的POLYGON数组
    /// </summary>
    /// <param name="n"> 长度 </param>
    /// <param name="v"> 值 </param>
    /// <returns>列表</returns>
    public static extern dynamic get_polygon_n_list(int? n,PolyArea v);

    /// <summary>
    /// 获取ITEM_GROUP数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <returns>值</returns>
    public static extern ItemGroup get_item_group_list_value(dynamic l,int? i);

    /// <summary>
    /// 设置ITEM_GROUP数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <param name="v"> 值 </param>
    /// <returns></returns>
    public static extern void set_item_group_list_value(dynamic l,int? i,ItemGroup v);

    /// <summary>
    /// 生成n个值为v的ITEM_GROUP数组
    /// </summary>
    /// <param name="n"> 长度 </param>
    /// <param name="v"> 值 </param>
    /// <returns>列表</returns>
    public static extern dynamic get_item_group_n_list(int? n,ItemGroup v);

    /// <summary>
    /// 获取TECH_KEY数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <returns>值</returns>
    public static extern int? get_tech_key_list_value(dynamic l,int? i);

    /// <summary>
    /// 设置TECH_KEY数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <param name="v"> 值 </param>
    /// <returns></returns>
    public static extern void set_tech_key_list_value(dynamic l,int? i,int? v);

    /// <summary>
    /// 生成n个值为v的TECH_KEY数组
    /// </summary>
    /// <param name="n"> 长度 </param>
    /// <param name="v"> 值 </param>
    /// <returns>列表</returns>
    public static extern dynamic get_tech_key_n_list(int? n,int? v);

    /// <summary>
    /// 获取DYNAMIC_TRIGGER_INSTANCE数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <returns>值</returns>
    public static extern dynamic get_dynamic_trigger_instance_list_value(dynamic l,int? i);

    /// <summary>
    /// 设置DYNAMIC_TRIGGER_INSTANCE数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <param name="v"> 值 </param>
    /// <returns></returns>
    public static extern void set_dynamic_trigger_instance_list_value(dynamic l,int? i,dynamic v);

    /// <summary>
    /// 生成n个值为v的DYNAMIC_TRIGGER_INSTANCE数组
    /// </summary>
    /// <param name="n"> 长度 </param>
    /// <param name="v"> 值 </param>
    /// <returns>列表</returns>
    public static extern dynamic get_dynamic_trigger_instance_n_list(int? n,dynamic v);

    /// <summary>
    /// 获取ROLE_TYPE数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <returns>值</returns>
    public static extern int? get_role_type_list_value(dynamic l,int? i);

    /// <summary>
    /// 设置ROLE_TYPE数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <param name="v"> 值 </param>
    /// <returns></returns>
    public static extern void set_role_type_list_value(dynamic l,int? i,int? v);

    /// <summary>
    /// 生成n个值为v的ROLE_TYPE数组
    /// </summary>
    /// <param name="n"> 长度 </param>
    /// <param name="v"> 值 </param>
    /// <returns>列表</returns>
    public static extern dynamic get_role_type_n_list(int? n,int? v);

    /// <summary>
    /// 获取ROLE_STATUS数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <returns>值</returns>
    public static extern int? get_role_status_list_value(dynamic l,int? i);

    /// <summary>
    /// 设置ROLE_STATUS数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <param name="v"> 值 </param>
    /// <returns></returns>
    public static extern void set_role_status_list_value(dynamic l,int? i,int? v);

    /// <summary>
    /// 生成n个值为v的ROLE_STATUS数组
    /// </summary>
    /// <param name="n"> 长度 </param>
    /// <param name="v"> 值 </param>
    /// <returns>列表</returns>
    public static extern dynamic get_role_status_n_list(int? n,int? v);

    /// <summary>
    /// 获取NEW_TIMER数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <returns>值</returns>
    public static extern Timer get_new_timer_list_value(dynamic l,int? i);

    /// <summary>
    /// 设置NEW_TIMER数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <param name="v"> 值 </param>
    /// <returns></returns>
    public static extern void set_new_timer_list_value(dynamic l,int? i,Timer v);

    /// <summary>
    /// 生成n个值为v的NEW_TIMER数组
    /// </summary>
    /// <param name="n"> 长度 </param>
    /// <param name="v"> 值 </param>
    /// <returns>列表</returns>
    public static extern dynamic get_new_timer_n_list(int? n,Timer v);

    /// <summary>
    /// 获取ABILITY_TYPE数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <returns>值</returns>
    public static extern int? get_ability_type_list_value(dynamic l,int? i);

    /// <summary>
    /// 设置ABILITY_TYPE数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <param name="v"> 值 </param>
    /// <returns></returns>
    public static extern void set_ability_type_list_value(dynamic l,int? i,int? v);

    /// <summary>
    /// 生成n个值为v的ABILITY_TYPE数组
    /// </summary>
    /// <param name="n"> 长度 </param>
    /// <param name="v"> 值 </param>
    /// <returns>列表</returns>
    public static extern dynamic get_ability_type_n_list(int? n,int? v);

    /// <summary>
    /// 获取LINK_SFX_KEY数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <returns>值</returns>
    public static extern int? get_link_sfx_key_list_value(dynamic l,int? i);

    /// <summary>
    /// 设置LINK_SFX_KEY数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <param name="v"> 值 </param>
    /// <returns></returns>
    public static extern void set_link_sfx_key_list_value(dynamic l,int? i,int? v);

    /// <summary>
    /// 生成n个值为v的LINK_SFX_KEY数组
    /// </summary>
    /// <param name="n"> 长度 </param>
    /// <param name="v"> 值 </param>
    /// <returns>列表</returns>
    public static extern dynamic get_link_sfx_key_n_list(int? n,int? v);

    /// <summary>
    /// 获取UI_COMP_ALIGN_TYPE数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <returns>值</returns>
    public static extern int? get_ui_comp_align_type_list_value(dynamic l,int? i);

    /// <summary>
    /// 设置UI_COMP_ALIGN_TYPE数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <param name="v"> 值 </param>
    /// <returns></returns>
    public static extern void set_ui_comp_align_type_list_value(dynamic l,int? i,int? v);

    /// <summary>
    /// 生成n个值为v的UI_COMP_ALIGN_TYPE数组
    /// </summary>
    /// <param name="n"> 长度 </param>
    /// <param name="v"> 值 </param>
    /// <returns>列表</returns>
    public static extern dynamic get_ui_comp_align_type_n_list(int? n,int? v);

    /// <summary>
    /// 获取UI_DIRECTION数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <returns>值</returns>
    public static extern int? get_ui_direction_list_value(dynamic l,int? i);

    /// <summary>
    /// 设置UI_DIRECTION数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <param name="v"> 值 </param>
    /// <returns></returns>
    public static extern void set_ui_direction_list_value(dynamic l,int? i,int? v);

    /// <summary>
    /// 生成n个值为v的UI_DIRECTION数组
    /// </summary>
    /// <param name="n"> 长度 </param>
    /// <param name="v"> 值 </param>
    /// <returns>列表</returns>
    public static extern dynamic get_ui_direction_n_list(int? n,int? v);

    /// <summary>
    /// 获取RANDOM_POOL数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <returns>值</returns>
    public static extern RandomPool get_random_pool_list_value(dynamic l,int? i);

    /// <summary>
    /// 设置RANDOM_POOL数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <param name="v"> 值 </param>
    /// <returns></returns>
    public static extern void set_random_pool_list_value(dynamic l,int? i,RandomPool v);

    /// <summary>
    /// 生成n个值为v的RANDOM_POOL数组
    /// </summary>
    /// <param name="n"> 长度 </param>
    /// <param name="v"> 值 </param>
    /// <returns>列表</returns>
    public static extern dynamic get_random_pool_n_list(int? n,RandomPool v);

    /// <summary>
    /// 获取LINK_SFX_ENTITY数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <returns>值</returns>
    public static extern LinkSfx get_link_sfx_entity_list_value(dynamic l,int? i);

    /// <summary>
    /// 设置LINK_SFX_ENTITY数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <param name="v"> 值 </param>
    /// <returns></returns>
    public static extern void set_link_sfx_entity_list_value(dynamic l,int? i,LinkSfx v);

    /// <summary>
    /// 生成n个值为v的LINK_SFX_ENTITY数组
    /// </summary>
    /// <param name="n"> 长度 </param>
    /// <param name="v"> 值 </param>
    /// <returns>列表</returns>
    public static extern dynamic get_link_sfx_entity_n_list(int? n,LinkSfx v);

    /// <summary>
    /// 获取PROJECTILE_GROUP数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <returns>值</returns>
    public static extern ProjectileGroup get_projectile_group_list_value(dynamic l,int? i);

    /// <summary>
    /// 设置PROJECTILE_GROUP数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <param name="v"> 值 </param>
    /// <returns></returns>
    public static extern void set_projectile_group_list_value(dynamic l,int? i,ProjectileGroup v);

    /// <summary>
    /// 生成n个值为v的PROJECTILE_GROUP数组
    /// </summary>
    /// <param name="n"> 长度 </param>
    /// <param name="v"> 值 </param>
    /// <returns>列表</returns>
    public static extern dynamic get_projectile_group_n_list(int? n,ProjectileGroup v);

    /// <summary>
    /// 获取DESTRUCTIBLE_ENTITY数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <returns>值</returns>
    public static extern Destructible get_destructible_entity_list_value(dynamic l,int? i);

    /// <summary>
    /// 设置DESTRUCTIBLE_ENTITY数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <param name="v"> 值 </param>
    /// <returns></returns>
    public static extern void set_destructible_entity_list_value(dynamic l,int? i,Destructible v);

    /// <summary>
    /// 生成n个值为v的DESTRUCTIBLE_ENTITY数组
    /// </summary>
    /// <param name="n"> 长度 </param>
    /// <param name="v"> 值 </param>
    /// <returns>列表</returns>
    public static extern dynamic get_destructible_entity_n_list(int? n,Destructible v);

    /// <summary>
    /// 获取DESTRUCTIBLE_NAME数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <returns>值</returns>
    public static extern int? get_destructible_name_list_value(dynamic l,int? i);

    /// <summary>
    /// 设置DESTRUCTIBLE_NAME数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <param name="v"> 值 </param>
    /// <returns></returns>
    public static extern void set_destructible_name_list_value(dynamic l,int? i,int? v);

    /// <summary>
    /// 生成n个值为v的DESTRUCTIBLE_NAME数组
    /// </summary>
    /// <param name="n"> 长度 </param>
    /// <param name="v"> 值 </param>
    /// <returns>列表</returns>
    public static extern dynamic get_destructible_name_n_list(int? n,int? v);

    /// <summary>
    /// 获取SOUND_ENTITY数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <returns>值</returns>
    public static extern SoundEntity get_sound_entity_list_value(dynamic l,int? i);

    /// <summary>
    /// 设置SOUND_ENTITY数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <param name="v"> 值 </param>
    /// <returns></returns>
    public static extern void set_sound_entity_list_value(dynamic l,int? i,SoundEntity v);

    /// <summary>
    /// 生成n个值为v的SOUND_ENTITY数组
    /// </summary>
    /// <param name="n"> 长度 </param>
    /// <param name="v"> 值 </param>
    /// <returns>列表</returns>
    public static extern dynamic get_sound_entity_n_list(int? n,SoundEntity v);

    /// <summary>
    /// 获取ABILITY_CAST_TYPE数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <returns>值</returns>
    public static extern int? get_ability_cast_type_list_value(dynamic l,int? i);

    /// <summary>
    /// 设置ABILITY_CAST_TYPE数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <param name="v"> 值 </param>
    /// <returns></returns>
    public static extern void set_ability_cast_type_list_value(dynamic l,int? i,int? v);

    /// <summary>
    /// 生成n个值为v的ABILITY_CAST_TYPE数组
    /// </summary>
    /// <param name="n"> 长度 </param>
    /// <param name="v"> 值 </param>
    /// <returns>列表</returns>
    public static extern dynamic get_ability_cast_type_n_list(int? n,int? v);

    /// <summary>
    /// 获取CURVED_PATH数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <returns>值</returns>
    public static extern int? get_curved_path_list_value(dynamic l,int? i);

    /// <summary>
    /// 设置CURVED_PATH数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <param name="v"> 值 </param>
    /// <returns></returns>
    public static extern void set_curved_path_list_value(dynamic l,int? i,int? v);

    /// <summary>
    /// 生成n个值为v的CURVED_PATH数组
    /// </summary>
    /// <param name="n"> 长度 </param>
    /// <param name="v"> 值 </param>
    /// <returns>列表</returns>
    public static extern dynamic get_curved_path_n_list(int? n,int? v);

    /// <summary>
    /// 获取IMAGE_KEY数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <returns>值</returns>
    public static extern int? get_image_key_list_value(dynamic l,int? i);

    /// <summary>
    /// 设置IMAGE_KEY数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <param name="v"> 值 </param>
    /// <returns></returns>
    public static extern void set_image_key_list_value(dynamic l,int? i,int? v);

    /// <summary>
    /// 生成n个值为v的IMAGE_KEY数组
    /// </summary>
    /// <param name="n"> 长度 </param>
    /// <param name="v"> 值 </param>
    /// <returns>列表</returns>
    public static extern dynamic get_image_key_n_list(int? n,int? v);

    /// <summary>
    /// 获取ANGLE数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <returns>值</returns>
    public static extern Fix32 get_angle_list_value(dynamic l,int? i);

    /// <summary>
    /// 设置ANGLE数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <param name="v"> 值 </param>
    /// <returns></returns>
    public static extern void set_angle_list_value(dynamic l,int? i,Fix32 v);

    /// <summary>
    /// 生成n个值为v的ANGLE数组
    /// </summary>
    /// <param name="n"> 长度 </param>
    /// <param name="v"> 值 </param>
    /// <returns>列表</returns>
    public static extern dynamic get_angle_n_list(int? n,Fix32 v);

    /// <summary>
    /// 获取CURVED_PATH_3D数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <returns>值</returns>
    public static extern CurvedPath3D get_curved_path_3d_list_value(dynamic l,int? i);

    /// <summary>
    /// 设置CURVED_PATH_3D数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <param name="v"> 值 </param>
    /// <returns></returns>
    public static extern void set_curved_path_3d_list_value(dynamic l,int? i,CurvedPath3D v);

    /// <summary>
    /// 生成n个值为v的CURVED_PATH_3D数组
    /// </summary>
    /// <param name="n"> 长度 </param>
    /// <param name="v"> 值 </param>
    /// <returns>列表</returns>
    public static extern dynamic get_curved_path_3d_n_list(int? n,CurvedPath3D v);

    /// <summary>
    /// 获取INT_SAVE数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <returns>值</returns>
    public static extern int? get_int_save_list_value(dynamic l,int? i);

    /// <summary>
    /// 设置INT_SAVE数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <param name="v"> 值 </param>
    /// <returns></returns>
    public static extern void set_int_save_list_value(dynamic l,int? i,int? v);

    /// <summary>
    /// 生成n个值为v的INT_SAVE数组
    /// </summary>
    /// <param name="n"> 长度 </param>
    /// <param name="v"> 值 </param>
    /// <returns>列表</returns>
    public static extern dynamic get_int_save_n_list(int? n,int? v);

    /// <summary>
    /// 获取STR_SAVE数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <returns>值</returns>
    public static extern string get_str_save_list_value(dynamic l,int? i);

    /// <summary>
    /// 设置STR_SAVE数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <param name="v"> 值 </param>
    /// <returns></returns>
    public static extern void set_str_save_list_value(dynamic l,int? i,string v);

    /// <summary>
    /// 生成n个值为v的STR_SAVE数组
    /// </summary>
    /// <param name="n"> 长度 </param>
    /// <param name="v"> 值 </param>
    /// <returns>列表</returns>
    public static extern dynamic get_str_save_n_list(int? n,string v);

    /// <summary>
    /// 获取FLOAT_SAVE数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <returns>值</returns>
    public static extern Fix32 get_float_save_list_value(dynamic l,int? i);

    /// <summary>
    /// 设置FLOAT_SAVE数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <param name="v"> 值 </param>
    /// <returns></returns>
    public static extern void set_float_save_list_value(dynamic l,int? i,Fix32 v);

    /// <summary>
    /// 生成n个值为v的FLOAT_SAVE数组
    /// </summary>
    /// <param name="n"> 长度 </param>
    /// <param name="v"> 值 </param>
    /// <returns>列表</returns>
    public static extern dynamic get_float_save_n_list(int? n,Fix32 v);

    /// <summary>
    /// 获取BOOL_SAVE数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <returns>值</returns>
    public static extern bool? get_bool_save_list_value(dynamic l,int? i);

    /// <summary>
    /// 设置BOOL_SAVE数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <param name="v"> 值 </param>
    /// <returns></returns>
    public static extern void set_bool_save_list_value(dynamic l,int? i,bool? v);

    /// <summary>
    /// 生成n个值为v的BOOL_SAVE数组
    /// </summary>
    /// <param name="n"> 长度 </param>
    /// <param name="v"> 值 </param>
    /// <returns>列表</returns>
    public static extern dynamic get_bool_save_n_list(int? n,bool? v);

    /// <summary>
    /// 获取SCENE_UI数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <returns>值</returns>
    public static extern SceneNode get_scene_ui_list_value(dynamic l,int? i);

    /// <summary>
    /// 设置SCENE_UI数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <param name="v"> 值 </param>
    /// <returns></returns>
    public static extern void set_scene_ui_list_value(dynamic l,int? i,SceneNode v);

    /// <summary>
    /// 生成n个值为v的SCENE_UI数组
    /// </summary>
    /// <param name="n"> 长度 </param>
    /// <param name="v"> 值 </param>
    /// <returns>列表</returns>
    public static extern dynamic get_scene_ui_n_list(int? n,SceneNode v);

    /// <summary>
    /// 获取UI_ANIM数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <returns>值</returns>
    public static extern int? get_ui_anim_list_value(dynamic l,int? i);

    /// <summary>
    /// 设置UI_ANIM数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <param name="v"> 值 </param>
    /// <returns></returns>
    public static extern void set_ui_anim_list_value(dynamic l,int? i,int? v);

    /// <summary>
    /// 生成n个值为v的UI_ANIM数组
    /// </summary>
    /// <param name="n"> 长度 </param>
    /// <param name="v"> 值 </param>
    /// <returns>列表</returns>
    public static extern dynamic get_ui_anim_n_list(int? n,int? v);

    /// <summary>
    /// 获取CAMLINE数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <returns>值</returns>
    public static extern int? get_camline_list_value(dynamic l,int? i);

    /// <summary>
    /// 设置CAMLINE数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <param name="v"> 值 </param>
    /// <returns></returns>
    public static extern void set_camline_list_value(dynamic l,int? i,int? v);

    /// <summary>
    /// 生成n个值为v的CAMLINE数组
    /// </summary>
    /// <param name="n"> 长度 </param>
    /// <param name="v"> 值 </param>
    /// <returns>列表</returns>
    public static extern dynamic get_camline_n_list(int? n,int? v);

    /// <summary>
    /// 获取TABLE_SAVE数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <returns>值</returns>
    public static extern dynamic get_table_save_list_value(dynamic l,int? i);

    /// <summary>
    /// 设置TABLE_SAVE数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <param name="v"> 值 </param>
    /// <returns></returns>
    public static extern void set_table_save_list_value(dynamic l,int? i,dynamic v);

    /// <summary>
    /// 生成n个值为v的TABLE_SAVE数组
    /// </summary>
    /// <param name="n"> 长度 </param>
    /// <param name="v"> 值 </param>
    /// <returns>列表</returns>
    public static extern dynamic get_table_save_n_list(int? n,dynamic v);

    /// <summary>
    /// 获取MOVER_ENTITY数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <returns>值</returns>
    public static extern Mover get_mover_entity_list_value(dynamic l,int? i);

    /// <summary>
    /// 设置MOVER_ENTITY数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <param name="v"> 值 </param>
    /// <returns></returns>
    public static extern void set_mover_entity_list_value(dynamic l,int? i,Mover v);

    /// <summary>
    /// 生成n个值为v的MOVER_ENTITY数组
    /// </summary>
    /// <param name="n"> 长度 </param>
    /// <param name="v"> 值 </param>
    /// <returns>列表</returns>
    public static extern dynamic get_mover_entity_n_list(int? n,Mover v);

    /// <summary>
    /// 获取CURSOR_KEY数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <returns>值</returns>
    public static extern int? get_cursor_key_list_value(dynamic l,int? i);

    /// <summary>
    /// 设置CURSOR_KEY数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <param name="v"> 值 </param>
    /// <returns></returns>
    public static extern void set_cursor_key_list_value(dynamic l,int? i,int? v);

    /// <summary>
    /// 生成n个值为v的CURSOR_KEY数组
    /// </summary>
    /// <param name="n"> 长度 </param>
    /// <param name="v"> 值 </param>
    /// <returns>列表</returns>
    public static extern dynamic get_cursor_key_n_list(int? n,int? v);

    /// <summary>
    /// 获取VECTOR3数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <returns>值</returns>
    public static extern Point get_vector3_list_value(dynamic l,int? i);

    /// <summary>
    /// 设置VECTOR3数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <param name="v"> 值 </param>
    /// <returns></returns>
    public static extern void set_vector3_list_value(dynamic l,int? i,Point v);

    /// <summary>
    /// 生成n个值为v的VECTOR3数组
    /// </summary>
    /// <param name="n"> 长度 </param>
    /// <param name="v"> 值 </param>
    /// <returns>列表</returns>
    public static extern dynamic get_vector3_n_list(int? n,Point v);

    /// <summary>
    /// 获取SEQUENCE数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <returns>值</returns>
    public static extern int? get_sequence_list_value(dynamic l,int? i);

    /// <summary>
    /// 设置SEQUENCE数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <param name="v"> 值 </param>
    /// <returns></returns>
    public static extern void set_sequence_list_value(dynamic l,int? i,int? v);

    /// <summary>
    /// 生成n个值为v的SEQUENCE数组
    /// </summary>
    /// <param name="n"> 长度 </param>
    /// <param name="v"> 值 </param>
    /// <returns>列表</returns>
    public static extern dynamic get_sequence_n_list(int? n,int? v);

    /// <summary>
    /// 获取PHYSICS_OBJECT数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <returns>值</returns>
    public static extern dynamic get_physics_object_list_value(dynamic l,int? i);

    /// <summary>
    /// 设置PHYSICS_OBJECT数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <param name="v"> 值 </param>
    /// <returns></returns>
    public static extern void set_physics_object_list_value(dynamic l,int? i,dynamic v);

    /// <summary>
    /// 生成n个值为v的PHYSICS_OBJECT数组
    /// </summary>
    /// <param name="n"> 长度 </param>
    /// <param name="v"> 值 </param>
    /// <returns>列表</returns>
    public static extern dynamic get_physics_object_n_list(int? n,dynamic v);

    /// <summary>
    /// 获取PHYSICS_ENTITY数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <returns>值</returns>
    public static extern dynamic get_physics_entity_list_value(dynamic l,int? i);

    /// <summary>
    /// 设置PHYSICS_ENTITY数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <param name="v"> 值 </param>
    /// <returns></returns>
    public static extern void set_physics_entity_list_value(dynamic l,int? i,dynamic v);

    /// <summary>
    /// 生成n个值为v的PHYSICS_ENTITY数组
    /// </summary>
    /// <param name="n"> 长度 </param>
    /// <param name="v"> 值 </param>
    /// <returns>列表</returns>
    public static extern dynamic get_physics_entity_n_list(int? n,dynamic v);

    /// <summary>
    /// 获取RIGID_BODY数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <returns>值</returns>
    public static extern dynamic get_rigid_body_list_value(dynamic l,int? i);

    /// <summary>
    /// 设置RIGID_BODY数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <param name="v"> 值 </param>
    /// <returns></returns>
    public static extern void set_rigid_body_list_value(dynamic l,int? i,dynamic v);

    /// <summary>
    /// 生成n个值为v的RIGID_BODY数组
    /// </summary>
    /// <param name="n"> 长度 </param>
    /// <param name="v"> 值 </param>
    /// <returns>列表</returns>
    public static extern dynamic get_rigid_body_n_list(int? n,dynamic v);

    /// <summary>
    /// 获取COLLIDER数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <returns>值</returns>
    public static extern dynamic get_collider_list_value(dynamic l,int? i);

    /// <summary>
    /// 设置COLLIDER数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <param name="v"> 值 </param>
    /// <returns></returns>
    public static extern void set_collider_list_value(dynamic l,int? i,dynamic v);

    /// <summary>
    /// 生成n个值为v的COLLIDER数组
    /// </summary>
    /// <param name="n"> 长度 </param>
    /// <param name="v"> 值 </param>
    /// <returns>列表</returns>
    public static extern dynamic get_collider_n_list(int? n,dynamic v);

    /// <summary>
    /// 获取ATTR_ELEMENT数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <returns>值</returns>
    public static extern string get_attr_element_list_value(dynamic l,int? i);

    /// <summary>
    /// 设置ATTR_ELEMENT数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <param name="v"> 值 </param>
    /// <returns></returns>
    public static extern void set_attr_element_list_value(dynamic l,int? i,string v);

    /// <summary>
    /// 生成n个值为v的ATTR_ELEMENT数组
    /// </summary>
    /// <param name="n"> 长度 </param>
    /// <param name="v"> 值 </param>
    /// <returns>列表</returns>
    public static extern dynamic get_attr_element_n_list(int? n,string v);

    /// <summary>
    /// 获取ATTR_ELEMENT_READ数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <returns>值</returns>
    public static extern string get_attr_element_read_list_value(dynamic l,int? i);

    /// <summary>
    /// 设置ATTR_ELEMENT_READ数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <param name="v"> 值 </param>
    /// <returns></returns>
    public static extern void set_attr_element_read_list_value(dynamic l,int? i,string v);

    /// <summary>
    /// 生成n个值为v的ATTR_ELEMENT_READ数组
    /// </summary>
    /// <param name="n"> 长度 </param>
    /// <param name="v"> 值 </param>
    /// <returns>列表</returns>
    public static extern dynamic get_attr_element_read_n_list(int? n,string v);

    /// <summary>
    /// 获取JOINT数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <returns>值</returns>
    public static extern dynamic get_joint_list_value(dynamic l,int? i);

    /// <summary>
    /// 设置JOINT数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <param name="v"> 值 </param>
    /// <returns></returns>
    public static extern void set_joint_list_value(dynamic l,int? i,dynamic v);

    /// <summary>
    /// 生成n个值为v的JOINT数组
    /// </summary>
    /// <param name="n"> 长度 </param>
    /// <param name="v"> 值 </param>
    /// <returns>列表</returns>
    public static extern dynamic get_joint_n_list(int? n,dynamic v);

    /// <summary>
    /// 获取PHYSICS_OBJECT_KEY数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <returns>值</returns>
    public static extern int? get_physics_object_key_list_value(dynamic l,int? i);

    /// <summary>
    /// 设置PHYSICS_OBJECT_KEY数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <param name="v"> 值 </param>
    /// <returns></returns>
    public static extern void set_physics_object_key_list_value(dynamic l,int? i,int? v);

    /// <summary>
    /// 生成n个值为v的PHYSICS_OBJECT_KEY数组
    /// </summary>
    /// <param name="n"> 长度 </param>
    /// <param name="v"> 值 </param>
    /// <returns>列表</returns>
    public static extern dynamic get_physics_object_key_n_list(int? n,int? v);

    /// <summary>
    /// 获取PHYSICS_ENTITY_KEY数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <returns>值</returns>
    public static extern int? get_physics_entity_key_list_value(dynamic l,int? i);

    /// <summary>
    /// 设置PHYSICS_ENTITY_KEY数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <param name="v"> 值 </param>
    /// <returns></returns>
    public static extern void set_physics_entity_key_list_value(dynamic l,int? i,int? v);

    /// <summary>
    /// 生成n个值为v的PHYSICS_ENTITY_KEY数组
    /// </summary>
    /// <param name="n"> 长度 </param>
    /// <param name="v"> 值 </param>
    /// <returns>列表</returns>
    public static extern dynamic get_physics_entity_key_n_list(int? n,int? v);

    /// <summary>
    /// 获取ROTATION数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <returns>值</returns>
    public static extern Point get_rotation_list_value(dynamic l,int? i);

    /// <summary>
    /// 设置ROTATION数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <param name="v"> 值 </param>
    /// <returns></returns>
    public static extern void set_rotation_list_value(dynamic l,int? i,Point v);

    /// <summary>
    /// 生成n个值为v的ROTATION数组
    /// </summary>
    /// <param name="n"> 长度 </param>
    /// <param name="v"> 值 </param>
    /// <returns>列表</returns>
    public static extern dynamic get_rotation_n_list(int? n,Point v);

    /// <summary>
    /// 获取RIGID_BODY_GROUP数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <returns>值</returns>
    public static extern dynamic get_rigid_body_group_list_value(dynamic l,int? i);

    /// <summary>
    /// 设置RIGID_BODY_GROUP数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <param name="v"> 值 </param>
    /// <returns></returns>
    public static extern void set_rigid_body_group_list_value(dynamic l,int? i,dynamic v);

    /// <summary>
    /// 生成n个值为v的RIGID_BODY_GROUP数组
    /// </summary>
    /// <param name="n"> 长度 </param>
    /// <param name="v"> 值 </param>
    /// <returns>列表</returns>
    public static extern dynamic get_rigid_body_group_n_list(int? n,dynamic v);

    /// <summary>
    /// 获取REACTION数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <returns>值</returns>
    public static extern dynamic get_reaction_list_value(dynamic l,int? i);

    /// <summary>
    /// 设置REACTION数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <param name="v"> 值 </param>
    /// <returns></returns>
    public static extern void set_reaction_list_value(dynamic l,int? i,dynamic v);

    /// <summary>
    /// 生成n个值为v的REACTION数组
    /// </summary>
    /// <param name="n"> 长度 </param>
    /// <param name="v"> 值 </param>
    /// <returns>列表</returns>
    public static extern dynamic get_reaction_n_list(int? n,dynamic v);

    /// <summary>
    /// 获取REACTION_GROUP数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <returns>值</returns>
    public static extern dynamic get_reaction_group_list_value(dynamic l,int? i);

    /// <summary>
    /// 设置REACTION_GROUP数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <param name="v"> 值 </param>
    /// <returns></returns>
    public static extern void set_reaction_group_list_value(dynamic l,int? i,dynamic v);

    /// <summary>
    /// 生成n个值为v的REACTION_GROUP数组
    /// </summary>
    /// <param name="n"> 长度 </param>
    /// <param name="v"> 值 </param>
    /// <returns>列表</returns>
    public static extern dynamic get_reaction_group_n_list(int? n,dynamic v);

    /// <summary>
    /// 获取UI_ANIM_CURVE数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <returns>值</returns>
    public static extern int? get_ui_anim_curve_list_value(dynamic l,int? i);

    /// <summary>
    /// 设置UI_ANIM_CURVE数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <param name="v"> 值 </param>
    /// <returns></returns>
    public static extern void set_ui_anim_curve_list_value(dynamic l,int? i,int? v);

    /// <summary>
    /// 生成n个值为v的UI_ANIM_CURVE数组
    /// </summary>
    /// <param name="n"> 长度 </param>
    /// <param name="v"> 值 </param>
    /// <returns>列表</returns>
    public static extern dynamic get_ui_anim_curve_n_list(int? n,int? v);

    /// <summary>
    /// 获取GLOBAL_ARCHIVE_SLOT数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <returns>值</returns>
    public static extern string get_global_archive_slot_list_value(dynamic l,int? i);

    /// <summary>
    /// 设置GLOBAL_ARCHIVE_SLOT数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <param name="v"> 值 </param>
    /// <returns></returns>
    public static extern void set_global_archive_slot_list_value(dynamic l,int? i,string v);

    /// <summary>
    /// 生成n个值为v的GLOBAL_ARCHIVE_SLOT数组
    /// </summary>
    /// <param name="n"> 长度 </param>
    /// <param name="v"> 值 </param>
    /// <returns>列表</returns>
    public static extern dynamic get_global_archive_slot_n_list(int? n,string v);

    /// <summary>
    /// 获取RANDOM_POOL_DROP数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <returns>值</returns>
    public static extern int? get_random_pool_drop_list_value(dynamic l,int? i);

    /// <summary>
    /// 设置RANDOM_POOL_DROP数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <param name="v"> 值 </param>
    /// <returns></returns>
    public static extern void set_random_pool_drop_list_value(dynamic l,int? i,int? v);

    /// <summary>
    /// 生成n个值为v的RANDOM_POOL_DROP数组
    /// </summary>
    /// <param name="n"> 长度 </param>
    /// <param name="v"> 值 </param>
    /// <returns>列表</returns>
    public static extern dynamic get_random_pool_drop_n_list(int? n,int? v);

    /// <summary>
    /// 获取DAMAGE_ATTACK_TYPE数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <returns>值</returns>
    public static extern int? get_damage_attack_type_list_value(dynamic l,int? i);

    /// <summary>
    /// 设置DAMAGE_ATTACK_TYPE数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <param name="v"> 值 </param>
    /// <returns></returns>
    public static extern void set_damage_attack_type_list_value(dynamic l,int? i,int? v);

    /// <summary>
    /// 生成n个值为v的DAMAGE_ATTACK_TYPE数组
    /// </summary>
    /// <param name="n"> 长度 </param>
    /// <param name="v"> 值 </param>
    /// <returns>列表</returns>
    public static extern dynamic get_damage_attack_type_n_list(int? n,int? v);

    /// <summary>
    /// 获取DAMAGE_ARMOR_TYPE数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <returns>值</returns>
    public static extern int? get_damage_armor_type_list_value(dynamic l,int? i);

    /// <summary>
    /// 设置DAMAGE_ARMOR_TYPE数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <param name="v"> 值 </param>
    /// <returns></returns>
    public static extern void set_damage_armor_type_list_value(dynamic l,int? i,int? v);

    /// <summary>
    /// 生成n个值为v的DAMAGE_ARMOR_TYPE数组
    /// </summary>
    /// <param name="n"> 长度 </param>
    /// <param name="v"> 值 </param>
    /// <returns>列表</returns>
    public static extern dynamic get_damage_armor_type_n_list(int? n,int? v);

    /// <summary>
    /// 获取GAME_MODE数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <returns>值</returns>
    public static extern GameMode get_game_mode_list_value(dynamic l,int? i);

    /// <summary>
    /// 设置GAME_MODE数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <param name="v"> 值 </param>
    /// <returns></returns>
    public static extern void set_game_mode_list_value(dynamic l,int? i,GameMode v);

    /// <summary>
    /// 生成n个值为v的GAME_MODE数组
    /// </summary>
    /// <param name="n"> 长度 </param>
    /// <param name="v"> 值 </param>
    /// <returns>列表</returns>
    public static extern dynamic get_game_mode_n_list(int? n,GameMode v);

    /// <summary>
    /// 获取IMAGE_QUALITY数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <returns>值</returns>
    public static extern string get_image_quality_list_value(dynamic l,int? i);

    /// <summary>
    /// 设置IMAGE_QUALITY数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <param name="v"> 值 </param>
    /// <returns></returns>
    public static extern void set_image_quality_list_value(dynamic l,int? i,string v);

    /// <summary>
    /// 生成n个值为v的IMAGE_QUALITY数组
    /// </summary>
    /// <param name="n"> 长度 </param>
    /// <param name="v"> 值 </param>
    /// <returns>列表</returns>
    public static extern dynamic get_image_quality_n_list(int? n,string v);

    /// <summary>
    /// 获取WINDOW_TYPE_SETTING数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <returns>值</returns>
    public static extern string get_window_type_setting_list_value(dynamic l,int? i);

    /// <summary>
    /// 设置WINDOW_TYPE_SETTING数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <param name="v"> 值 </param>
    /// <returns></returns>
    public static extern void set_window_type_setting_list_value(dynamic l,int? i,string v);

    /// <summary>
    /// 生成n个值为v的WINDOW_TYPE_SETTING数组
    /// </summary>
    /// <param name="n"> 长度 </param>
    /// <param name="v"> 值 </param>
    /// <returns>列表</returns>
    public static extern dynamic get_window_type_setting_n_list(int? n,string v);

    /// <summary>
    /// 获取KEYBOARD_KEY数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <returns>值</returns>
    public static extern int? get_keyboard_key_list_value(dynamic l,int? i);

    /// <summary>
    /// 设置KEYBOARD_KEY数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <param name="v"> 值 </param>
    /// <returns></returns>
    public static extern void set_keyboard_key_list_value(dynamic l,int? i,int? v);

    /// <summary>
    /// 生成n个值为v的KEYBOARD_KEY数组
    /// </summary>
    /// <param name="n"> 长度 </param>
    /// <param name="v"> 值 </param>
    /// <returns>列表</returns>
    public static extern dynamic get_keyboard_key_n_list(int? n,int? v);

    /// <summary>
    /// 获取CAMERA_ATTR_REAL_NUMBER数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <returns>值</returns>
    public static extern string get_camera_attr_real_number_list_value(dynamic l,int? i);

    /// <summary>
    /// 设置CAMERA_ATTR_REAL_NUMBER数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <param name="v"> 值 </param>
    /// <returns></returns>
    public static extern void set_camera_attr_real_number_list_value(dynamic l,int? i,string v);

    /// <summary>
    /// 生成n个值为v的CAMERA_ATTR_REAL_NUMBER数组
    /// </summary>
    /// <param name="n"> 长度 </param>
    /// <param name="v"> 值 </param>
    /// <returns>列表</returns>
    public static extern dynamic get_camera_attr_real_number_n_list(int? n,string v);

    /// <summary>
    /// 获取CAMERA_ATTR_INTEGER数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <returns>值</returns>
    public static extern string get_camera_attr_integer_list_value(dynamic l,int? i);

    /// <summary>
    /// 设置CAMERA_ATTR_INTEGER数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <param name="v"> 值 </param>
    /// <returns></returns>
    public static extern void set_camera_attr_integer_list_value(dynamic l,int? i,string v);

    /// <summary>
    /// 生成n个值为v的CAMERA_ATTR_INTEGER数组
    /// </summary>
    /// <param name="n"> 长度 </param>
    /// <param name="v"> 值 </param>
    /// <returns>列表</returns>
    public static extern dynamic get_camera_attr_integer_n_list(int? n,string v);

    /// <summary>
    /// 获取POINT_LIGHT数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <returns>值</returns>
    public static extern PointLight get_point_light_list_value(dynamic l,int? i);

    /// <summary>
    /// 设置POINT_LIGHT数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <param name="v"> 值 </param>
    /// <returns></returns>
    public static extern void set_point_light_list_value(dynamic l,int? i,PointLight v);

    /// <summary>
    /// 生成n个值为v的POINT_LIGHT数组
    /// </summary>
    /// <param name="n"> 长度 </param>
    /// <param name="v"> 值 </param>
    /// <returns>列表</returns>
    public static extern dynamic get_point_light_n_list(int? n,PointLight v);

    /// <summary>
    /// 获取SPOT_LIGHT数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <returns>值</returns>
    public static extern SpotLight get_spot_light_list_value(dynamic l,int? i);

    /// <summary>
    /// 设置SPOT_LIGHT数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <param name="v"> 值 </param>
    /// <returns></returns>
    public static extern void set_spot_light_list_value(dynamic l,int? i,SpotLight v);

    /// <summary>
    /// 生成n个值为v的SPOT_LIGHT数组
    /// </summary>
    /// <param name="n"> 长度 </param>
    /// <param name="v"> 值 </param>
    /// <returns>列表</returns>
    public static extern dynamic get_spot_light_n_list(int? n,SpotLight v);

    /// <summary>
    /// 获取FOG数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <returns>值</returns>
    public static extern Fog get_fog_list_value(dynamic l,int? i);

    /// <summary>
    /// 设置FOG数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <param name="v"> 值 </param>
    /// <returns></returns>
    public static extern void set_fog_list_value(dynamic l,int? i,Fog v);

    /// <summary>
    /// 生成n个值为v的FOG数组
    /// </summary>
    /// <param name="n"> 长度 </param>
    /// <param name="v"> 值 </param>
    /// <returns>列表</returns>
    public static extern dynamic get_fog_n_list(int? n,Fog v);

    /// <summary>
    /// 获取UI_PREFAB数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <returns>值</returns>
    public static extern string get_ui_prefab_list_value(dynamic l,int? i);

    /// <summary>
    /// 设置UI_PREFAB数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <param name="v"> 值 </param>
    /// <returns></returns>
    public static extern void set_ui_prefab_list_value(dynamic l,int? i,string v);

    /// <summary>
    /// 生成n个值为v的UI_PREFAB数组
    /// </summary>
    /// <param name="n"> 长度 </param>
    /// <param name="v"> 值 </param>
    /// <returns>列表</returns>
    public static extern dynamic get_ui_prefab_n_list(int? n,string v);

    /// <summary>
    /// 获取UI_PREFAB_INSTANCE数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <returns>值</returns>
    public static extern string get_ui_prefab_instance_list_value(dynamic l,int? i);

    /// <summary>
    /// 设置UI_PREFAB_INSTANCE数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <param name="v"> 值 </param>
    /// <returns></returns>
    public static extern void set_ui_prefab_instance_list_value(dynamic l,int? i,string v);

    /// <summary>
    /// 生成n个值为v的UI_PREFAB_INSTANCE数组
    /// </summary>
    /// <param name="n"> 长度 </param>
    /// <param name="v"> 值 </param>
    /// <returns>列表</returns>
    public static extern dynamic get_ui_prefab_instance_n_list(int? n,string v);

    /// <summary>
    /// 获取UI_PREFAB_INS_UID数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <returns>值</returns>
    public static extern string get_ui_prefab_ins_uid_list_value(dynamic l,int? i);

    /// <summary>
    /// 设置UI_PREFAB_INS_UID数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <param name="v"> 值 </param>
    /// <returns></returns>
    public static extern void set_ui_prefab_ins_uid_list_value(dynamic l,int? i,string v);

    /// <summary>
    /// 生成n个值为v的UI_PREFAB_INS_UID数组
    /// </summary>
    /// <param name="n"> 长度 </param>
    /// <param name="v"> 值 </param>
    /// <returns>列表</returns>
    public static extern dynamic get_ui_prefab_ins_uid_n_list(int? n,string v);

    /// <summary>
    /// 获取AUDIO_CHANNEL数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <returns>值</returns>
    public static extern int? get_audio_channel_list_value(dynamic l,int? i);

    /// <summary>
    /// 设置AUDIO_CHANNEL数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <param name="v"> 值 </param>
    /// <returns></returns>
    public static extern void set_audio_channel_list_value(dynamic l,int? i,int? v);

    /// <summary>
    /// 生成n个值为v的AUDIO_CHANNEL数组
    /// </summary>
    /// <param name="n"> 长度 </param>
    /// <param name="v"> 值 </param>
    /// <returns>列表</returns>
    public static extern dynamic get_audio_channel_n_list(int? n,int? v);

    /// <summary>
    /// 获取UI_MODEL_CAMERA_MOD数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <returns>值</returns>
    public static extern int? get_ui_model_camera_mod_list_value(dynamic l,int? i);

    /// <summary>
    /// 设置UI_MODEL_CAMERA_MOD数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <param name="v"> 值 </param>
    /// <returns></returns>
    public static extern void set_ui_model_camera_mod_list_value(dynamic l,int? i,int? v);

    /// <summary>
    /// 生成n个值为v的UI_MODEL_CAMERA_MOD数组
    /// </summary>
    /// <param name="n"> 长度 </param>
    /// <param name="v"> 值 </param>
    /// <returns>列表</returns>
    public static extern dynamic get_ui_model_camera_mod_n_list(int? n,int? v);

    /// <summary>
    /// 获取UI_BTN_STATUS数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <returns>值</returns>
    public static extern int? get_ui_btn_status_list_value(dynamic l,int? i);

    /// <summary>
    /// 设置UI_BTN_STATUS数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <param name="v"> 值 </param>
    /// <returns></returns>
    public static extern void set_ui_btn_status_list_value(dynamic l,int? i,int? v);

    /// <summary>
    /// 生成n个值为v的UI_BTN_STATUS数组
    /// </summary>
    /// <param name="n"> 长度 </param>
    /// <param name="v"> 值 </param>
    /// <returns>列表</returns>
    public static extern dynamic get_ui_btn_status_n_list(int? n,int? v);

    /// <summary>
    /// 获取UI_SCROLLVIEW_TYPE数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <returns>值</returns>
    public static extern int? get_ui_scrollview_type_list_value(dynamic l,int? i);

    /// <summary>
    /// 设置UI_SCROLLVIEW_TYPE数组中某项
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <param name="i"> 下标 </param>
    /// <param name="v"> 值 </param>
    /// <returns></returns>
    public static extern void set_ui_scrollview_type_list_value(dynamic l,int? i,int? v);

    /// <summary>
    /// 生成n个值为v的UI_SCROLLVIEW_TYPE数组
    /// </summary>
    /// <param name="n"> 长度 </param>
    /// <param name="v"> 值 </param>
    /// <returns>列表</returns>
    public static extern dynamic get_ui_scrollview_type_n_list(int? n,int? v);

    /// <summary>
    /// 预设库 添加BOOLEAN键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_unit_key_boolean_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加INTEGER键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_unit_key_integer_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加FLOAT键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_unit_key_float_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加STRING键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_unit_key_string_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加UI_COMP键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_unit_key_ui_comp_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加UI_COMP_TYPE键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_unit_key_ui_comp_type_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加UI_COMP_EVENT_TYPE键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_unit_key_ui_comp_event_type_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加UI_COMP_ATTR键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_unit_key_ui_comp_attr_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加UI_COMP_ALIGN_TYPE键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_unit_key_ui_comp_align_type_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加UI_PREFAB键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_unit_key_ui_prefab_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加UI_PREFAB_INSTANCE键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_unit_key_ui_prefab_instance_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加UI_PREFAB_INS_UID键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_unit_key_ui_prefab_ins_uid_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加UI_DIRECTION键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_unit_key_ui_direction_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加UI_MODEL_CAMERA_MOD键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_unit_key_ui_model_camera_mod_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加UI_BTN_STATUS键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_unit_key_ui_btn_status_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加UI_SCROLLVIEW_TYPE键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_unit_key_ui_scrollview_type_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加UI_ANIM键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_unit_key_ui_anim_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加UI_ANIM_CURVE键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_unit_key_ui_anim_curve_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加AUDIO_CHANNEL键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_unit_key_audio_channel_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加UNIT_ENTITY键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_unit_key_unit_entity_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加UNIT_GROUP键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_unit_key_unit_group_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加UNIT_NAME键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_unit_key_unit_name_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加UNIT_NAME_POOL键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_unit_key_unit_name_pool_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加UNIT_WRITE_ATTRIBUTE键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_unit_key_unit_write_attribute_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加ATTR_ELEMENT键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_unit_key_attr_element_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加ATTR_ELEMENT_READ键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_unit_key_attr_element_read_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加MOVER_ENTITY键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_unit_key_mover_entity_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加IMAGE_QUALITY键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_unit_key_image_quality_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加WINDOW_TYPE_SETTING键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_unit_key_window_type_setting_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加ITEM_ENTITY键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_unit_key_item_entity_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加ITEM_GROUP键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_unit_key_item_group_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加ITEM_NAME键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_unit_key_item_name_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加ABILITY键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_unit_key_ability_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加ABILITY_TYPE键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_unit_key_ability_type_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加ABILITY_CAST_TYPE键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_unit_key_ability_cast_type_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加ABILITY_NAME键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_unit_key_ability_name_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加SKILL_POINTER_TYPE键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_unit_key_skill_pointer_type_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加MODIFIER_ENTITY键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_unit_key_modifier_entity_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加MODIFIER_TYPE键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_unit_key_modifier_type_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加MODIFIER_EFFECT_TYPE键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_unit_key_modifier_effect_type_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加MODIFIER键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_unit_key_modifier_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加PROJECTILE键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_unit_key_projectile_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加PROJECTILE_ENTITY键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_unit_key_projectile_entity_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加PROJECTILE_GROUP键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_unit_key_projectile_group_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加DESTRUCTIBLE_ENTITY键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_unit_key_destructible_entity_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加DESTRUCTIBLE_NAME键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_unit_key_destructible_name_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加SOUND_ENTITY键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_unit_key_sound_entity_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加AUDIO_KEY键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_unit_key_audio_key_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加GAME_MODE键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_unit_key_game_mode_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加PLAYER键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_unit_key_player_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加PLAYER_GROUP键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_unit_key_player_group_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加ROLE_RES_KEY键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_unit_key_role_res_key_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加ROLE_STATUS键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_unit_key_role_status_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加ROLE_TYPE键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_unit_key_role_type_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加ROLE_RELATION键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_unit_key_role_relation_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加TEAM键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_unit_key_team_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加POINT键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_unit_key_point_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加VECTOR3键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_unit_key_vector3_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加ROTATION键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_unit_key_rotation_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加POINT_LIST键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_unit_key_point_list_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加RECTANGLE键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_unit_key_rectangle_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加ROUND_AREA键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_unit_key_round_area_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加POLYGON键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_unit_key_polygon_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加CAMERA键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_unit_key_camera_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加CAMLINE键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_unit_key_camline_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加POINT_LIGHT键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_unit_key_point_light_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加SPOT_LIGHT键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_unit_key_spot_light_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加FOG键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_unit_key_fog_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加SCENE_SOUND键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_unit_key_scene_sound_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加MODEL键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_unit_key_model_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加SFX_ENTITY键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_unit_key_sfx_entity_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加SFX_KEY键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_unit_key_sfx_key_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加LINK_SFX_ENTITY键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_unit_key_link_sfx_entity_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加LINK_SFX_KEY键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_unit_key_link_sfx_key_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加CURSOR_KEY键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_unit_key_cursor_key_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加ANGLE键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_unit_key_angle_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加TEXTURE键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_unit_key_texture_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加SEQUENCE键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_unit_key_sequence_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加PHYSICS_OBJECT键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_unit_key_physics_object_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加PHYSICS_ENTITY键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_unit_key_physics_entity_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加PHYSICS_OBJECT_KEY键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_unit_key_physics_object_key_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加PHYSICS_ENTITY_KEY键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_unit_key_physics_entity_key_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加RIGID_BODY键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_unit_key_rigid_body_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加RIGID_BODY_GROUP键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_unit_key_rigid_body_group_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加COLLIDER键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_unit_key_collider_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加JOINT键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_unit_key_joint_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加REACTION键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_unit_key_reaction_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加REACTION_GROUP键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_unit_key_reaction_group_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加DYNAMIC_TRIGGER_INSTANCE键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_unit_key_dynamic_trigger_instance_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加TABLE键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_unit_key_table_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加RANDOM_POOL键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_unit_key_random_pool_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加SCENE_UI键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_unit_key_scene_ui_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加DAMAGE_TYPE键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_unit_key_damage_type_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加HARM_TEXT_TYPE_NEW键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_unit_key_harm_text_type_new_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加FONT_TYPE键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_unit_key_font_type_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加JUMP_WORD_TRACK键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_unit_key_jump_word_track_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加NEW_TIMER键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_unit_key_new_timer_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加TECH_KEY键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_unit_key_tech_key_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加STORE_KEY键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_unit_key_store_key_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加KEYBOARD_KEY键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_unit_key_keyboard_key_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加FUNC_KEYBOARD_KEY键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_unit_key_func_keyboard_key_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加MOUSE_KEY键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_unit_key_mouse_key_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加MOUSE_WHEEL键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_unit_key_mouse_wheel_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加POST_EFFECT键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_unit_key_post_effect_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加UNIT_TYPE键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_unit_key_unit_type_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加UNIT_COMMAND_TYPE键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_unit_key_unit_command_type_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加MINI_MAP_COLOR_TYPE键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_unit_key_mini_map_color_type_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加UNIT_BEHAVIOR键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_unit_key_unit_behavior_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加CURVED_PATH键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_unit_key_curved_path_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加CURVED_PATH_3D键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_unit_key_curved_path_3d_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加BOOLEAN键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_item_key_boolean_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加INTEGER键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_item_key_integer_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加FLOAT键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_item_key_float_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加STRING键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_item_key_string_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加UI_COMP键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_item_key_ui_comp_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加UI_COMP_TYPE键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_item_key_ui_comp_type_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加UI_COMP_EVENT_TYPE键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_item_key_ui_comp_event_type_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加UI_COMP_ATTR键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_item_key_ui_comp_attr_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加UI_COMP_ALIGN_TYPE键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_item_key_ui_comp_align_type_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加UI_PREFAB键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_item_key_ui_prefab_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加UI_PREFAB_INSTANCE键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_item_key_ui_prefab_instance_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加UI_PREFAB_INS_UID键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_item_key_ui_prefab_ins_uid_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加UI_DIRECTION键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_item_key_ui_direction_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加UI_MODEL_CAMERA_MOD键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_item_key_ui_model_camera_mod_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加UI_BTN_STATUS键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_item_key_ui_btn_status_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加UI_SCROLLVIEW_TYPE键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_item_key_ui_scrollview_type_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加UI_ANIM键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_item_key_ui_anim_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加UI_ANIM_CURVE键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_item_key_ui_anim_curve_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加AUDIO_CHANNEL键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_item_key_audio_channel_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加UNIT_ENTITY键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_item_key_unit_entity_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加UNIT_GROUP键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_item_key_unit_group_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加UNIT_NAME键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_item_key_unit_name_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加UNIT_NAME_POOL键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_item_key_unit_name_pool_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加UNIT_WRITE_ATTRIBUTE键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_item_key_unit_write_attribute_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加ATTR_ELEMENT键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_item_key_attr_element_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加ATTR_ELEMENT_READ键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_item_key_attr_element_read_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加MOVER_ENTITY键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_item_key_mover_entity_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加IMAGE_QUALITY键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_item_key_image_quality_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加WINDOW_TYPE_SETTING键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_item_key_window_type_setting_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加ITEM_ENTITY键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_item_key_item_entity_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加ITEM_GROUP键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_item_key_item_group_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加ITEM_NAME键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_item_key_item_name_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加ABILITY键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_item_key_ability_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加ABILITY_TYPE键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_item_key_ability_type_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加ABILITY_CAST_TYPE键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_item_key_ability_cast_type_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加ABILITY_NAME键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_item_key_ability_name_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加SKILL_POINTER_TYPE键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_item_key_skill_pointer_type_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加MODIFIER_ENTITY键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_item_key_modifier_entity_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加MODIFIER_TYPE键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_item_key_modifier_type_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加MODIFIER_EFFECT_TYPE键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_item_key_modifier_effect_type_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加MODIFIER键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_item_key_modifier_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加PROJECTILE键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_item_key_projectile_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加PROJECTILE_ENTITY键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_item_key_projectile_entity_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加PROJECTILE_GROUP键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_item_key_projectile_group_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加DESTRUCTIBLE_ENTITY键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_item_key_destructible_entity_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加DESTRUCTIBLE_NAME键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_item_key_destructible_name_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加SOUND_ENTITY键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_item_key_sound_entity_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加AUDIO_KEY键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_item_key_audio_key_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加GAME_MODE键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_item_key_game_mode_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加PLAYER键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_item_key_player_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加PLAYER_GROUP键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_item_key_player_group_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加ROLE_RES_KEY键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_item_key_role_res_key_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加ROLE_STATUS键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_item_key_role_status_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加ROLE_TYPE键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_item_key_role_type_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加ROLE_RELATION键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_item_key_role_relation_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加TEAM键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_item_key_team_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加POINT键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_item_key_point_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加VECTOR3键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_item_key_vector3_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加ROTATION键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_item_key_rotation_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加POINT_LIST键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_item_key_point_list_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加RECTANGLE键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_item_key_rectangle_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加ROUND_AREA键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_item_key_round_area_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加POLYGON键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_item_key_polygon_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加CAMERA键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_item_key_camera_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加CAMLINE键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_item_key_camline_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加POINT_LIGHT键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_item_key_point_light_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加SPOT_LIGHT键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_item_key_spot_light_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加FOG键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_item_key_fog_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加SCENE_SOUND键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_item_key_scene_sound_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加MODEL键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_item_key_model_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加SFX_ENTITY键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_item_key_sfx_entity_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加SFX_KEY键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_item_key_sfx_key_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加LINK_SFX_ENTITY键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_item_key_link_sfx_entity_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加LINK_SFX_KEY键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_item_key_link_sfx_key_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加CURSOR_KEY键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_item_key_cursor_key_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加ANGLE键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_item_key_angle_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加TEXTURE键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_item_key_texture_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加SEQUENCE键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_item_key_sequence_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加PHYSICS_OBJECT键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_item_key_physics_object_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加PHYSICS_ENTITY键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_item_key_physics_entity_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加PHYSICS_OBJECT_KEY键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_item_key_physics_object_key_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加PHYSICS_ENTITY_KEY键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_item_key_physics_entity_key_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加RIGID_BODY键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_item_key_rigid_body_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加RIGID_BODY_GROUP键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_item_key_rigid_body_group_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加COLLIDER键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_item_key_collider_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加JOINT键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_item_key_joint_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加REACTION键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_item_key_reaction_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加REACTION_GROUP键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_item_key_reaction_group_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加DYNAMIC_TRIGGER_INSTANCE键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_item_key_dynamic_trigger_instance_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加TABLE键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_item_key_table_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加RANDOM_POOL键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_item_key_random_pool_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加SCENE_UI键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_item_key_scene_ui_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加DAMAGE_TYPE键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_item_key_damage_type_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加HARM_TEXT_TYPE_NEW键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_item_key_harm_text_type_new_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加FONT_TYPE键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_item_key_font_type_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加JUMP_WORD_TRACK键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_item_key_jump_word_track_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加NEW_TIMER键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_item_key_new_timer_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加TECH_KEY键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_item_key_tech_key_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加STORE_KEY键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_item_key_store_key_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加KEYBOARD_KEY键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_item_key_keyboard_key_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加FUNC_KEYBOARD_KEY键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_item_key_func_keyboard_key_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加MOUSE_KEY键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_item_key_mouse_key_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加MOUSE_WHEEL键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_item_key_mouse_wheel_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加POST_EFFECT键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_item_key_post_effect_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加UNIT_TYPE键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_item_key_unit_type_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加UNIT_COMMAND_TYPE键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_item_key_unit_command_type_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加MINI_MAP_COLOR_TYPE键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_item_key_mini_map_color_type_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加UNIT_BEHAVIOR键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_item_key_unit_behavior_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加CURVED_PATH键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_item_key_curved_path_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加CURVED_PATH_3D键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_item_key_curved_path_3d_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加BOOLEAN键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_ability_key_boolean_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加INTEGER键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_ability_key_integer_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加FLOAT键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_ability_key_float_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加STRING键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_ability_key_string_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加UI_COMP键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_ability_key_ui_comp_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加UI_COMP_TYPE键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_ability_key_ui_comp_type_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加UI_COMP_EVENT_TYPE键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_ability_key_ui_comp_event_type_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加UI_COMP_ATTR键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_ability_key_ui_comp_attr_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加UI_COMP_ALIGN_TYPE键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_ability_key_ui_comp_align_type_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加UI_PREFAB键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_ability_key_ui_prefab_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加UI_PREFAB_INSTANCE键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_ability_key_ui_prefab_instance_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加UI_PREFAB_INS_UID键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_ability_key_ui_prefab_ins_uid_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加UI_DIRECTION键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_ability_key_ui_direction_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加UI_MODEL_CAMERA_MOD键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_ability_key_ui_model_camera_mod_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加UI_BTN_STATUS键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_ability_key_ui_btn_status_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加UI_SCROLLVIEW_TYPE键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_ability_key_ui_scrollview_type_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加UI_ANIM键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_ability_key_ui_anim_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加UI_ANIM_CURVE键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_ability_key_ui_anim_curve_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加AUDIO_CHANNEL键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_ability_key_audio_channel_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加UNIT_ENTITY键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_ability_key_unit_entity_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加UNIT_GROUP键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_ability_key_unit_group_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加UNIT_NAME键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_ability_key_unit_name_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加UNIT_NAME_POOL键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_ability_key_unit_name_pool_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加UNIT_WRITE_ATTRIBUTE键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_ability_key_unit_write_attribute_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加ATTR_ELEMENT键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_ability_key_attr_element_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加ATTR_ELEMENT_READ键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_ability_key_attr_element_read_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加MOVER_ENTITY键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_ability_key_mover_entity_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加IMAGE_QUALITY键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_ability_key_image_quality_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加WINDOW_TYPE_SETTING键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_ability_key_window_type_setting_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加ITEM_ENTITY键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_ability_key_item_entity_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加ITEM_GROUP键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_ability_key_item_group_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加ITEM_NAME键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_ability_key_item_name_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加ABILITY键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_ability_key_ability_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加ABILITY_TYPE键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_ability_key_ability_type_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加ABILITY_CAST_TYPE键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_ability_key_ability_cast_type_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加ABILITY_NAME键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_ability_key_ability_name_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加SKILL_POINTER_TYPE键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_ability_key_skill_pointer_type_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加MODIFIER_ENTITY键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_ability_key_modifier_entity_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加MODIFIER_TYPE键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_ability_key_modifier_type_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加MODIFIER_EFFECT_TYPE键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_ability_key_modifier_effect_type_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加MODIFIER键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_ability_key_modifier_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加PROJECTILE键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_ability_key_projectile_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加PROJECTILE_ENTITY键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_ability_key_projectile_entity_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加PROJECTILE_GROUP键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_ability_key_projectile_group_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加DESTRUCTIBLE_ENTITY键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_ability_key_destructible_entity_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加DESTRUCTIBLE_NAME键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_ability_key_destructible_name_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加SOUND_ENTITY键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_ability_key_sound_entity_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加AUDIO_KEY键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_ability_key_audio_key_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加GAME_MODE键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_ability_key_game_mode_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加PLAYER键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_ability_key_player_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加PLAYER_GROUP键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_ability_key_player_group_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加ROLE_RES_KEY键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_ability_key_role_res_key_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加ROLE_STATUS键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_ability_key_role_status_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加ROLE_TYPE键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_ability_key_role_type_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加ROLE_RELATION键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_ability_key_role_relation_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加TEAM键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_ability_key_team_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加POINT键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_ability_key_point_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加VECTOR3键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_ability_key_vector3_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加ROTATION键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_ability_key_rotation_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加POINT_LIST键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_ability_key_point_list_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加RECTANGLE键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_ability_key_rectangle_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加ROUND_AREA键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_ability_key_round_area_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加POLYGON键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_ability_key_polygon_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加CAMERA键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_ability_key_camera_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加CAMLINE键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_ability_key_camline_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加POINT_LIGHT键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_ability_key_point_light_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加SPOT_LIGHT键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_ability_key_spot_light_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加FOG键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_ability_key_fog_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加SCENE_SOUND键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_ability_key_scene_sound_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加MODEL键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_ability_key_model_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加SFX_ENTITY键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_ability_key_sfx_entity_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加SFX_KEY键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_ability_key_sfx_key_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加LINK_SFX_ENTITY键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_ability_key_link_sfx_entity_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加LINK_SFX_KEY键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_ability_key_link_sfx_key_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加CURSOR_KEY键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_ability_key_cursor_key_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加ANGLE键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_ability_key_angle_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加TEXTURE键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_ability_key_texture_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加SEQUENCE键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_ability_key_sequence_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加PHYSICS_OBJECT键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_ability_key_physics_object_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加PHYSICS_ENTITY键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_ability_key_physics_entity_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加PHYSICS_OBJECT_KEY键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_ability_key_physics_object_key_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加PHYSICS_ENTITY_KEY键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_ability_key_physics_entity_key_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加RIGID_BODY键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_ability_key_rigid_body_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加RIGID_BODY_GROUP键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_ability_key_rigid_body_group_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加COLLIDER键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_ability_key_collider_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加JOINT键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_ability_key_joint_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加REACTION键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_ability_key_reaction_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加REACTION_GROUP键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_ability_key_reaction_group_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加DYNAMIC_TRIGGER_INSTANCE键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_ability_key_dynamic_trigger_instance_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加TABLE键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_ability_key_table_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加RANDOM_POOL键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_ability_key_random_pool_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加SCENE_UI键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_ability_key_scene_ui_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加DAMAGE_TYPE键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_ability_key_damage_type_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加HARM_TEXT_TYPE_NEW键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_ability_key_harm_text_type_new_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加FONT_TYPE键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_ability_key_font_type_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加JUMP_WORD_TRACK键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_ability_key_jump_word_track_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加NEW_TIMER键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_ability_key_new_timer_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加TECH_KEY键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_ability_key_tech_key_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加STORE_KEY键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_ability_key_store_key_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加KEYBOARD_KEY键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_ability_key_keyboard_key_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加FUNC_KEYBOARD_KEY键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_ability_key_func_keyboard_key_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加MOUSE_KEY键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_ability_key_mouse_key_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加MOUSE_WHEEL键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_ability_key_mouse_wheel_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加POST_EFFECT键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_ability_key_post_effect_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加UNIT_TYPE键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_ability_key_unit_type_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加UNIT_COMMAND_TYPE键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_ability_key_unit_command_type_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加MINI_MAP_COLOR_TYPE键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_ability_key_mini_map_color_type_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加UNIT_BEHAVIOR键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_ability_key_unit_behavior_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加CURVED_PATH键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_ability_key_curved_path_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 预设库 添加CURVED_PATH_3D键值对
    /// </summary>
    /// <param name="item_key"> prefab库ID </param>
    /// <param name="key"> 编号 </param>
    /// <param name="value"> 键值名称 </param>
    /// <returns></returns>
    public static extern void set_ability_key_curved_path_3d_kv(int? item_key,int? key,string value);

    /// <summary>
    /// 判断BUFF是否是目标BUFFID的实例
    /// </summary>
    /// <param name="modifier1"> BUFF实例 </param>
    /// <param name="modifier_key"> BUFFID </param>
    /// <returns>是否是目标buff的实例</returns>
    public static extern bool? is_modifier_id(ModifierEntity modifier1,int? modifier_key);

    /// <summary>
    /// 判断BUFF是否是目标BUFF实例
    /// </summary>
    /// <param name="modifier1"> BUFF实例 </param>
    /// <param name="modifier2"> BUFF实例 </param>
    /// <returns>是否是目标实例</returns>
    public static extern bool? is_modifier_instance(ModifierEntity modifier1,ModifierEntity modifier2);

    /// <summary>
    /// 判断BUFF是否是为目标类型的buff(正面负面等)
    /// </summary>
    /// <param name="modifier1"> BUFF实例 </param>
    /// <param name="modifier_type"> BUFF效果类型 </param>
    /// <returns>是否是目标效果类型</returns>
    public static extern bool? judge_modifier_effect_type(ModifierEntity modifier1,int? modifier_type);

    /// <summary>
    /// 获取目标效果(BUFF)的效果类型
    /// </summary>
    /// <param name="modifier1"> BUFF实例 </param>
    /// <returns>效果编号</returns>
    public static extern int? get_type_of_modifier_entity(ModifierEntity modifier1);

    /// <summary>
    /// 转换目标数字ID到效果类型
    /// </summary>
    /// <param name="modifier_key"> 数字编号 </param>
    /// <returns>效果编号</returns>
    public static extern int? transfer_num_into_modifier_key(int? modifier_key);

    /// <summary>
    /// 获取魔法效果类型的名称
    /// </summary>
    /// <param name="modifier_key"> 魔法效果编号 </param>
    /// <returns>名称</returns>
    public static extern string api_get_name_of_modifier_key(int? modifier_key);

    /// <summary>
    /// 创建新魔法效果物编
    /// </summary>
    /// <param name="old_entity_no"> 魔法效果物编 </param>
    /// <returns>魔法效果物编</returns>
    public static extern int? create_modifier_editor_data(int? old_entity_no);

    /// <summary>
    /// 最近合成物品的单位
    /// </summary>
    /// <returns>单位实体</returns>
    public static extern Unit get_last_compose_unit();

    /// <summary>
    /// 最近添加物品
    /// </summary>
    /// <returns>物品实体</returns>
    public static extern Item get_last_add_item();

    /// <summary>
    /// 最近移除物品
    /// </summary>
    /// <returns>物品实体</returns>
    public static extern Item get_last_remove_item();

    /// <summary>
    /// 最近使用物品
    /// </summary>
    /// <returns>物品实体</returns>
    public static extern Item get_last_use_item();

    /// <summary>
    /// 最近堆叠变化物品
    /// </summary>
    /// <returns>物品实体</returns>
    public static extern Item get_last_stack_changed_item();

    /// <summary>
    /// 最近充能变化物品
    /// </summary>
    /// <returns>物品实体</returns>
    public static extern Item get_last_charge_changed_item();

    /// <summary>
    /// 最近添加物品单位
    /// </summary>
    /// <returns>单位实体</returns>
    public static extern Unit get_last_add_item_unit();

    /// <summary>
    /// 最近移除物品单位
    /// </summary>
    /// <returns>单位实体</returns>
    public static extern Unit get_last_remove_item_unit();

    /// <summary>
    /// 最近使用物品单位
    /// </summary>
    /// <returns>单位实体</returns>
    public static extern Unit get_last_use_item_unit();

    /// <summary>
    /// 最近物品层数变化单位
    /// </summary>
    /// <returns>单位实体</returns>
    public static extern Unit get_last_change_item_stack_unit();

    /// <summary>
    /// 获取物品类型附加属性
    /// </summary>
    /// <param name="item_key"> 物品类型编号 </param>
    /// <param name="attr_element_field"> 属性名 </param>
    /// <param name="attr_key"> 属性成分名 </param>
    /// <returns></returns>
    public static extern void api_get_attr_of_item_key(int? item_key,string attr_element_field,string attr_key);

    /// <summary>
    /// 获取物品类型的模型
    /// </summary>
    /// <param name="item_key"> 物品类型编号 </param>
    /// <returns>模型编号</returns>
    public static extern int? api_get_item_type_model(int? item_key);

    /// <summary>
    /// 遍历物品类型合成所需的物品类型数量
    /// </summary>
    /// <param name="item_key"> 物品类型编号 </param>
    /// <param name="comp_item_key"> 物品类型编号 </param>
    /// <returns>个数</returns>
    public static extern int? api_get_value_of_item_name_comp_mat(int? item_key,int? comp_item_key);

    /// <summary>
    /// 遍历物品类型合成所需的玩家属性数量
    /// </summary>
    /// <param name="item_key"> 物品类型编号 </param>
    /// <param name="role_res_key"> 玩家属性 </param>
    /// <returns>取值</returns>
    public static extern double? api_get_value_of_item_name_comp_res(int? item_key,string role_res_key);

    /// <summary>
    /// 创建新物品物编
    /// </summary>
    /// <param name="old_entity_no"> 物品物编 </param>
    /// <returns>物品物编</returns>
    public static extern int? create_item_editor_data(int? old_entity_no);

    /// <summary>
    /// 获取物品类型的购买所需资源
    /// </summary>
    /// <param name="item_no"> 物品物编 </param>
    /// <param name="role_res_key"> 玩家属性 </param>
    /// <returns>资源数量</returns>
    public static extern int? api_get_item_key_res_cnt(int? item_no,string role_res_key);

    /// <summary>
    /// 获取物品类型的实数属性
    /// </summary>
    /// <param name="item_no"> 物编编号 </param>
    /// <param name="attr_key"> 物品类型实数属性key </param>
    /// <returns>实数属性值</returns>
    public static extern Fix32 api_get_item_type_float_attr(int? item_no,string attr_key);

    /// <summary>
    /// 获取物品类型的整数属性
    /// </summary>
    /// <param name="item_no"> 物编编号 </param>
    /// <param name="attr_key"> 物品整数属性key </param>
    /// <returns>整数属性值</returns>
    public static extern int? api_get_item_type_int_attr(int? item_no,string attr_key);

    /// <summary>
    /// 添加物品到物品组
    /// </summary>
    /// <param name="item_group"> 物品 </param>
    /// <param name="item"> 物品组 </param>
    /// <returns></returns>
    public static extern void api_add_item_to_group(Item item_group,ItemGroup item);

    /// <summary>
    /// 删除物品组中某个物品
    /// </summary>
    /// <param name="item_group"> 物品组 </param>
    /// <param name="item"> 物品 </param>
    /// <returns></returns>
    public static extern void api_remove_item_in_group(ItemGroup item_group,Item item);

    /// <summary>
    /// 判断物品是否在物品组
    /// </summary>
    /// <param name="item"> 物品 </param>
    /// <param name="item_group"> 物品组 </param>
    /// <returns>是否在物品组</returns>
    public static extern bool? api_judge_item_in_group(Item item,ItemGroup item_group);

    /// <summary>
    /// 物品组内随机一个单位
    /// </summary>
    /// <param name="item_group"> 物品组 </param>
    /// <returns>物品</returns>
    public static extern Item api_get_random_item_in_item_group(ItemGroup item_group);

    /// <summary>
    /// 最近被购买物品
    /// </summary>
    /// <returns>物品实体</returns>
    public static extern Item get_last_buy_shop_item();

    /// <summary>
    /// 最近被出售物品
    /// </summary>
    /// <returns>物品实体</returns>
    public static extern Item get_last_sell_shop_item();

    /// <summary>
    /// 最近购买者
    /// </summary>
    /// <returns>单位实体</returns>
    public static extern Unit get_last_buyer_unit();

    /// <summary>
    /// 最近出售者
    /// </summary>
    /// <returns>单位实体</returns>
    public static extern Unit get_last_seller_unit();

    /// <summary>
    /// 最近被购买单位
    /// </summary>
    /// <returns>单位实体</returns>
    public static extern Unit get_last_buy_shop_unit();

    /// <summary>
    /// 最近升级科技
    /// </summary>
    /// <returns>科技编号</returns>
    public static extern int? get_last_upgraded_tech();

    /// <summary>
    /// 最近升降科技
    /// </summary>
    /// <returns>科技编号</returns>
    public static extern int? get_last_operated_tech();

    /// <summary>
    /// 最近变化科技
    /// </summary>
    /// <returns>科技编号</returns>
    public static extern int? get_last_changed_tech();

    /// <summary>
    /// 最近变化科技等级
    /// </summary>
    /// <returns>科技变化等级</returns>
    public static extern int? get_last_changed_tech_level();

    /// <summary>
    /// 最近获得科技
    /// </summary>
    /// <returns>科技编号</returns>
    public static extern int? get_last_added_tech();

    /// <summary>
    /// 最近失去科技
    /// </summary>
    /// <returns>科技编号</returns>
    public static extern int? get_last_removed_tech();

    /// <summary>
    /// 最近研究科技单位
    /// </summary>
    /// <returns>研究科技单位</returns>
    public static extern Unit get_last_upgrade_tech_unit();

    /// <summary>
    /// 最近获得科技单位
    /// </summary>
    /// <returns>获得科技单位</returns>
    public static extern Unit get_last_add_tech_unit();

    /// <summary>
    /// 最近失去科技单位
    /// </summary>
    /// <returns>失去科技单位</returns>
    public static extern Unit get_last_remove_tech_unit();

    /// <summary>
    /// 获取科技对应等级名字
    /// </summary>
    /// <param name="tech_no"> 科技编号 </param>
    /// <param name="level"> 等级 </param>
    /// <returns>名字</returns>
    public static extern string get_tech_name(int? tech_no,int? level);

    /// <summary>
    /// 获取科技对应等级icon
    /// </summary>
    /// <param name="tech_no"> 科技编号 </param>
    /// <param name="level"> 等级 </param>
    /// <returns>图片id</returns>
    public static extern int? get_tech_icon(int? tech_no,int? level);

    /// <summary>
    /// 获取科技对应等级的花费
    /// </summary>
    /// <param name="tech_no"> 科技编号 </param>
    /// <param name="level"> 等级 </param>
    /// <returns>图片id</returns>
    public static extern int? get_tech_cost(int? tech_no,int? level);

    /// <summary>
    /// 获取科技最大等级
    /// </summary>
    /// <param name="tech_no"> 科技编号 </param>
    /// <returns>科技最大等级</returns>
    public static extern int? get_tech_max_level(int? tech_no);

    /// <summary>
    /// 创建新科技物编
    /// </summary>
    /// <param name="old_entity_no"> 科技物编 </param>
    /// <returns>科技物编</returns>
    public static extern int? create_technology_editor_data(int? old_entity_no);

    /// <summary>
    /// 最近成功使用收费道具玩家
    /// </summary>
    /// <returns>玩家</returns>
    public static extern Role get_last_use_store_item_role();

    /// <summary>
    /// 设置函数返回值
    /// </summary>
    /// <returns></returns>
    public static extern void set_function_return();

    /// <summary>
    /// 获取函数返回值
    /// </summary>
    /// <param name="func_id"> 函数ID </param>
    /// <param name="actor"> 调用者 </param>
    /// <param name="context"> 上下文 </param>
    /// <param name="params_expr"> 参数列表 </param>
    /// <returns>某一返回值</returns>
    public static extern dynamic get_function_return_value(string func_id,dynamic actor,dynamic context,dynamic params_expr);

    /// <summary>
    /// 发送自定义事件
    /// </summary>
    /// <param name="event_id"> 事件ID </param>
    /// <param name="params_dict"> 参数字典 </param>
    /// <returns></returns>
    public static extern void send_event_custom(int? event_id,dynamic params_dict);

    /// <summary>
    /// 生成字典
    /// </summary>
    /// <param name="ori_dict"> 字典 </param>
    /// <param name="key"> 参数key </param>
    /// <param name="param"> 参数value </param>
    /// <returns>字典返回值</returns>
    public static extern dynamic gen_param_dict(dynamic ori_dict,string key,string param);

    /// <summary>
    /// 获取字典中的值
    /// </summary>
    /// <param name="params_dict"> 字典 </param>
    /// <param name="key"> 参数key </param>
    /// <returns>字典中的值</returns>
    public static extern dynamic get_custom_param(dynamic params_dict,string key);

    /// <summary>
    /// 执行Lua代码
    /// </summary>
    /// <param name="code"> 字符串 </param>
    /// <param name="arg1"> 参数1 </param>
    /// <param name="arg2"> 参数2 </param>
    /// <param name="arg3"> 参数3 </param>
    /// <param name="arg4"> 参数4 </param>
    /// <param name="arg5"> 参数5 </param>
    /// <returns></returns>
    public static extern void eval_lua_code(string code,string arg1,string arg2,string arg3,string arg4,string arg5);

    /// <summary>
    /// 删除单位运动器
    /// </summary>
    /// <param name="unit"> 单位 </param>
    /// <returns></returns>
    public static extern void remove_unit_mover(Unit unit);

    /// <summary>
    /// 打断单位运动器
    /// </summary>
    /// <param name="unit"> 单位 </param>
    /// <returns></returns>
    public static extern void break_unit_mover(Unit unit);

    /// <summary>
    /// 运动器碰撞单位
    /// </summary>
    /// <returns>单位实体</returns>
    public static extern Unit get_mover_collide_unit();

    /// <summary>
    /// 创建追踪运动器
    /// </summary>
    /// <param name="unit"> 单位 </param>
    /// <param name="target_unit"> 目标单位 </param>
    /// <param name="stop_distance_to_target"> 停止距离 </param>
    /// <param name="init_velocity"> 初始速度 </param>
    /// <param name="acceleration"> 加速度 </param>
    /// <param name="max_velocity"> 最大速度 </param>
    /// <param name="min_velocity"> 最小速度 </param>
    /// <param name="init_height"> 起始高度 </param>
    /// <param name="parabola_height"> 抛物线高度 </param>
    /// <param name="bind_point"> 附着点 </param>
    /// <param name="collision_type"> 碰撞类型 </param>
    /// <param name="collision_radius"> 碰撞范围 </param>
    /// <param name="is_face_angle"> 是否始终面向运动方向 </param>
    /// <param name="is_multi_collision"> 是否能多次碰撞同一个物体 </param>
    /// <param name="terrain_block"> 地形阻挡 </param>
    /// <param name="priority"> 优先级数 </param>
    /// <param name="is_absolute_height"> 使用绝对高度 </param>
    /// <param name="f_mover_finish"> 运动完成事件 </param>
    /// <param name="f_mover_interrupt"> 运动打断事件 </param>
    /// <param name="f_mover_removed"> 运动移除事件 </param>
    /// <param name="f_terrain_collide"> 地形碰撞事件 </param>
    /// <param name="f_unit_collide"> 单位碰撞事件 </param>
    /// <returns>运动器ID</returns>
    public static extern Mover create_chasing_mover(Unit unit,Unit target_unit,double? stop_distance_to_target,double? init_velocity,double? acceleration,double? max_velocity,double? min_velocity,double? init_height,double? parabola_height,string bind_point,int? collision_type,double? collision_radius,bool? is_face_angle,bool? is_multi_collision,bool? terrain_block,int? priority,bool? is_absolute_height,dynamic f_mover_finish,dynamic f_mover_interrupt,dynamic f_mover_removed,dynamic f_terrain_collide,dynamic f_unit_collide);

    /// <summary>
    /// 创建直线运动器
    /// </summary>
    /// <param name="unit"> 单位 </param>
    /// <param name="angle"> 运动方向 </param>
    /// <param name="max_dist"> 最大距离 </param>
    /// <param name="init_velocity"> 初始速度 </param>
    /// <param name="acceleration"> 加速度 </param>
    /// <param name="max_velocity"> 最大速度 </param>
    /// <param name="min_velocity"> 最小速度 </param>
    /// <param name="init_height"> 起始高度 </param>
    /// <param name="fin_height"> 终点高度 </param>
    /// <param name="parabola_height"> 抛物线高度 </param>
    /// <param name="collision_type"> 碰撞类型 </param>
    /// <param name="collision_radius"> 碰撞范围 </param>
    /// <param name="is_face_angle"> 是否始终面向运动方向 </param>
    /// <param name="is_multi_collision"> 是否能多次碰撞同一个物体 </param>
    /// <param name="terrain_block"> 地形阻挡 </param>
    /// <param name="priority"> 优先级数 </param>
    /// <param name="is_absolute_height"> 使用绝对高度 </param>
    /// <param name="f_mover_finish"> 运动完成事件 </param>
    /// <param name="f_mover_interrupt"> 运动打断事件 </param>
    /// <param name="f_mover_removed"> 运动移除事件 </param>
    /// <param name="f_terrain_collide"> 地形碰撞事件 </param>
    /// <param name="f_unit_collide"> 单位碰撞事件 </param>
    /// <returns>运动器ID</returns>
    public static extern Mover create_straight_mover(Unit unit,double? angle,double? max_dist,double? init_velocity,double? acceleration,double? max_velocity,double? min_velocity,double? init_height,double? fin_height,double? parabola_height,int? collision_type,double? collision_radius,bool? is_face_angle,bool? is_multi_collision,bool? terrain_block,int? priority,bool? is_absolute_height,dynamic f_mover_finish,dynamic f_mover_interrupt,dynamic f_mover_removed,dynamic f_terrain_collide,dynamic f_unit_collide);

    /// <summary>
    /// 创建环绕运动器
    /// </summary>
    /// <param name="unit"> 单位 </param>
    /// <param name="target_unit"> 目标单位 </param>
    /// <param name="circle_radius"> 圆周半径 </param>
    /// <param name="angle_velocity"> 角速度 </param>
    /// <param name="init_angle"> 初始角度 </param>
    /// <param name="counterclockwise"> 方向 </param>
    /// <param name="round_time"> 环绕时间 </param>
    /// <param name="centrifugal_velocity"> 离心速度 </param>
    /// <param name="lifting_velocity"> 提升速度 </param>
    /// <param name="init_height"> 环绕高度 </param>
    /// <param name="collision_type"> 碰撞类型 </param>
    /// <param name="collision_radius"> 碰撞范围 </param>
    /// <param name="is_face_angle"> 是否始终面向运动方向 </param>
    /// <param name="is_multi_collision"> 是否能多次碰撞同一个物体 </param>
    /// <param name="terrain_block"> 地形阻挡 </param>
    /// <param name="priority"> 优先级数 </param>
    /// <param name="is_absolute_height"> 使用绝对高度 </param>
    /// <param name="target_pos"> 目标坐标 </param>
    /// <param name="f_mover_finish"> 运动完成事件 </param>
    /// <param name="f_mover_interrupt"> 运动打断事件 </param>
    /// <param name="f_mover_removed"> 运动移除事件 </param>
    /// <param name="f_terrain_collide"> 地形碰撞事件 </param>
    /// <param name="f_unit_collide"> 单位碰撞事件 </param>
    /// <returns>运动器ID</returns>
    public static extern Mover create_round_mover(Unit unit,Unit target_unit,double? circle_radius,double? angle_velocity,double? init_angle,double? counterclockwise,double? round_time,double? centrifugal_velocity,double? lifting_velocity,double? init_height,int? collision_type,double? collision_radius,bool? is_face_angle,bool? is_multi_collision,bool? terrain_block,int? priority,bool? is_absolute_height,Point target_pos,dynamic f_mover_finish,dynamic f_mover_interrupt,dynamic f_mover_removed,dynamic f_terrain_collide,dynamic f_unit_collide);

    /// <summary>
    /// 创建曲线运动器
    /// </summary>
    /// <param name="unit"> 单位 </param>
    /// <param name="angle"> 运动方向 </param>
    /// <param name="max_dist"> 最大距离 </param>
    /// <param name="init_velocity"> 初始速度 </param>
    /// <param name="acceleration"> 加速度 </param>
    /// <param name="max_velocity"> 最大速度 </param>
    /// <param name="min_velocity"> 最小速度 </param>
    /// <param name="init_height"> 起始高度 </param>
    /// <param name="fin_height"> 终点高度 </param>
    /// <param name="collision_type"> 碰撞类型 </param>
    /// <param name="collision_radius"> 碰撞范围 </param>
    /// <param name="is_face_angle"> 是否始终面向运动方向 </param>
    /// <param name="is_multi_collision"> 是否能多次碰撞同一个物体 </param>
    /// <param name="terrain_block"> 地形阻挡 </param>
    /// <param name="priority"> 优先级数 </param>
    /// <param name="is_absolute_height"> 使用绝对高度 </param>
    /// <param name="path"> 路径 </param>
    /// <param name="f_mover_finish"> 运动完成事件 </param>
    /// <param name="f_mover_interrupt"> 运动打断事件 </param>
    /// <param name="f_mover_removed"> 运动移除事件 </param>
    /// <param name="f_terrain_collide"> 地形碰撞事件 </param>
    /// <param name="f_unit_collide"> 单位碰撞事件 </param>
    /// <returns>运动器ID</returns>
    public static extern Mover create_curved_mover(Unit unit,double? angle,double? max_dist,double? init_velocity,double? acceleration,double? max_velocity,double? min_velocity,double? init_height,double? fin_height,int? collision_type,double? collision_radius,bool? is_face_angle,bool? is_multi_collision,bool? terrain_block,int? priority,bool? is_absolute_height,int? path,dynamic f_mover_finish,dynamic f_mover_interrupt,dynamic f_mover_removed,dynamic f_terrain_collide,dynamic f_unit_collide);

    /// <summary>
    /// 获得运动器类型
    /// </summary>
    /// <param name="mover_id"> 运动器 </param>
    /// <returns>运动器类型</returns>
    public static extern int? get_mover_type(Mover mover_id);

    /// <summary>
    /// 删除运动器
    /// </summary>
    /// <param name="mover_id"> 运动器 </param>
    /// <returns></returns>
    public static extern void remove_mover(Mover mover_id);

    /// <summary>
    /// 打断运动器
    /// </summary>
    /// <param name="mover_id"> 运动器 </param>
    /// <returns></returns>
    public static extern void break_mover(Mover mover_id);

    /// <summary>
    /// 获得单位的运动器
    /// </summary>
    /// <param name="unit"> 单位 </param>
    /// <returns>运动器</returns>
    public static extern Mover get_unit_mover(Unit unit);

    /// <summary>
    /// 获取运动器的优先级
    /// </summary>
    /// <param name="mover_id"> 运动器 </param>
    /// <returns>优先级</returns>
    public static extern int? get_mover_priority(Mover mover_id);

    /// <summary>
    /// 设置运动器的优先级
    /// </summary>
    /// <param name="mover_id"> 运动器 </param>
    /// <param name="priority"> 优先级 </param>
    /// <returns></returns>
    public static extern void set_mover_priority(Mover mover_id,int? priority);

    /// <summary>
    /// 设置运动器的属性
    /// </summary>
    /// <param name="mover_id"> 运动器 </param>
    /// <param name="key"> 属性名 </param>
    /// <param name="value"> 属性值 </param>
    /// <returns></returns>
    public static extern void set_mover_property(Mover mover_id,int? key,Fix32 value);

    /// <summary>
    /// 获取运动器的属性
    /// </summary>
    /// <param name="mover_id"> 运动器 </param>
    /// <param name="key"> 属性名 </param>
    /// <returns>属性值</returns>
    public static extern Fix32 get_mover_property(Mover mover_id,int? key);

    /// <summary>
    /// 获得运动器的运动方向
    /// </summary>
    /// <param name="mover_id"> 运动器 </param>
    /// <returns>角度</returns>
    public static extern Fix32 get_mover_angle(Mover mover_id);

    /// <summary>
    /// 设置运动器的运动方向
    /// </summary>
    /// <param name="mover_id"> 运动器 </param>
    /// <param name="angle"> 方向 </param>
    /// <returns></returns>
    public static extern void set_mover_angle(Mover mover_id,Fix32 angle);

    /// <summary>
    /// 设置运动器的碰撞范围
    /// </summary>
    /// <param name="mover_id"> 运动器 </param>
    /// <param name="radius"> 碰撞范围 </param>
    /// <returns></returns>
    public static extern void set_mover_collision_radius(Mover mover_id,Fix32 radius);

    /// <summary>
    /// 获得运动器的碰撞范围
    /// </summary>
    /// <param name="mover_id"> 运动器 </param>
    /// <returns>碰撞范围</returns>
    public static extern Fix32 get_mover_collision_radius(Mover mover_id);

    /// <summary>
    /// 设置运动器的关联单位
    /// </summary>
    /// <param name="mover_id"> 运动器 </param>
    /// <param name="unit"> 关联单位 </param>
    /// <returns></returns>
    public static extern void set_mover_relate_unit(Mover mover_id,Unit unit);

    /// <summary>
    /// 获得运动器的关联单位
    /// </summary>
    /// <param name="mover_id"> 运动器 </param>
    /// <returns>关联单位</returns>
    public static extern Unit get_mover_relate_unit(Mover mover_id);

    /// <summary>
    /// 设置运动器的关联技能
    /// </summary>
    /// <param name="mover_id"> 运动器 </param>
    /// <param name="ability"> 关联技能 </param>
    /// <returns></returns>
    public static extern void set_mover_relate_ability(Mover mover_id,Ability ability);

    /// <summary>
    /// 获得运动器的关联技能
    /// </summary>
    /// <param name="mover_id"> 运动器 </param>
    /// <returns>关联技能</returns>
    public static extern Ability get_mover_relate_ability(Mover mover_id);

    /// <summary>
    /// 移动
    /// </summary>
    /// <param name="pos"> 位置 </param>
    /// <param name="nav_range"> 寻路范围 </param>
    /// <returns>单位命令</returns>
    public static extern string create_unit_command_move_to_pos(Point pos,Fix32 nav_range);

    /// <summary>
    /// 停止
    /// </summary>
    /// <returns>单位命令</returns>
    public static extern string create_unit_command_stop();

    /// <summary>
    /// 空状态
    /// </summary>
    /// <returns>单位命令</returns>
    public static extern string create_unit_command_empty();

    /// <summary>
    /// 驻守
    /// </summary>
    /// <param name="pos"> 位置 </param>
    /// <returns>单位命令</returns>
    public static extern string create_unit_command_hold(Point pos);

    /// <summary>
    /// 攻击移动
    /// </summary>
    /// <param name="pos"> 位置 </param>
    /// <param name="nav_range"> 寻路范围 </param>
    /// <returns>单位命令</returns>
    public static extern string create_unit_command_attack_move(Point pos,Fix32 nav_range);

    /// <summary>
    /// 攻击
    /// </summary>
    /// <param name="target"> 目标 </param>
    /// <param name="nav_range"> 寻路范围 </param>
    /// <returns>单位命令</returns>
    public static extern string create_unit_command_attack_target(dynamic target,Fix32 nav_range);

    /// <summary>
    /// 沿路径移动
    /// </summary>
    /// <param name="road"> 路径 </param>
    /// <param name="patrol_mode"> 移动方式 </param>
    /// <param name="can_attack"> 是否主动攻击 </param>
    /// <param name="start_from_nearest"> 是否就近开始 </param>
    /// <param name="back_to_nearest"> 是否就近返回 </param>
    /// <returns>单位命令</returns>
    public static extern string create_unit_command_move_along_road(Road road,int? patrol_mode,bool? can_attack,bool? start_from_nearest,bool? back_to_nearest);

    /// <summary>
    /// 释放技能
    /// </summary>
    /// <param name="ability"> 技能 </param>
    /// <param name="tar_point_1"> 释放点1 </param>
    /// <param name="tar_point_2"> 释放点2 </param>
    /// <param name="tar_unit"> 释放目标单位 </param>
    /// <param name="tar_item"> 释放目标物品 </param>
    /// <param name="tar_dest"> 目标可破坏物 </param>
    /// <returns>单位命令</returns>
    public static extern string create_unit_command_use_skill(Ability ability,Point tar_point_1,Point tar_point_2,Unit tar_unit,Item tar_item,Destructible tar_dest);

    /// <summary>
    /// 使用物品
    /// </summary>
    /// <param name="item"> 物品 </param>
    /// <param name="tar_point_1"> 释放点1 </param>
    /// <param name="tar_point_2"> 释放点2 </param>
    /// <param name="tar_unit"> 目标单位 </param>
    /// <param name="tar_item"> 目标物品 </param>
    /// <param name="tar_dest"> 目标可破坏物 </param>
    /// <returns>单位命令</returns>
    public static extern string create_unit_command_use_item(Item item,Point tar_point_1,Point tar_point_2,Unit tar_unit,Item tar_item,Destructible tar_dest);

    /// <summary>
    /// 拾取物品
    /// </summary>
    /// <param name="item"> 物品 </param>
    /// <returns>单位命令</returns>
    public static extern string create_unit_command_pick_item(Item item);

    /// <summary>
    /// 丢弃物品
    /// </summary>
    /// <param name="item"> 物品 </param>
    /// <param name="pos"> 位置 </param>
    /// <returns>单位命令</returns>
    public static extern string create_unit_command_drop_item(Item item,Point pos);

    /// <summary>
    /// 转移物品
    /// </summary>
    /// <param name="item"> 物品 </param>
    /// <param name="target"> 对象 </param>
    /// <returns>单位命令</returns>
    public static extern string create_unit_command_transfer_item(Item item,Unit target);

    /// <summary>
    /// 跟随
    /// </summary>
    /// <param name="target"> 目标 </param>
    /// <param name="refresh_interval"> 间隔 </param>
    /// <param name="near_offset"> 跟随距离 </param>
    /// <param name="far_offset"> 重新跟随距离 </param>
    /// <returns>单位命令</returns>
    public static extern string create_unit_command_follow(Unit target,Fix32 refresh_interval,Fix32 near_offset,Fix32 far_offset);

    /// <summary>
    /// 特效播放开关
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="switch"> 开关 </param>
    /// <returns></returns>
    public static extern void set_player_sfx_switch(Role role,bool? @switch);

    /// <summary>
    /// 在某点播放特效
    /// </summary>
    /// <param name="point"> 点 </param>
    /// <param name="sfx"> 特效编号 </param>
    /// <param name="scale"> 缩放 </param>
    /// <param name="duratime"> 持续时间 </param>
    /// <param name="offset"> 竖直方向偏移 </param>
    /// <param name="role"> 玩家 </param>
    /// <param name="visible_type"> 显示类型（1：全体，2：自己 3：仅自己和友方 4：非自己和友方 </param>
    /// <param name="rotation"> 初始旋转角度 </param>
    /// <returns>特效</returns>
    public static extern Sfx play_sfx_on_point(Point point,int? sfx,Fix32 scale,Fix32 duratime,Fix32 offset,Role role,int? visible_type,Fix32 rotation);

    /// <summary>
    /// 创建单位到点闪电特效
    /// </summary>
    /// <param name="sfx_res_id"> 特效编号 </param>
    /// <param name="source_unit"> 起点单位 </param>
    /// <param name="source_socket"> 起点单位挂接点名称 </param>
    /// <param name="target_point"> 终点 </param>
    /// <param name="target_height"> 终点高度 </param>
    /// <param name="duration"> 持续时间 </param>
    /// <param name="immediately"> 是否立即删除 </param>
    /// <param name="use_sys_d_destroy_way"> 特效删除的方式是否读表 </param>
    /// <returns>特效</returns>
    public static extern LinkSfx create_link_sfx_from_unit_to_point(int? sfx_res_id,Unit source_unit,string source_socket,Point target_point,Fix32 target_height,double? duration,bool? immediately,bool? use_sys_d_destroy_way);

    /// <summary>
    /// 创建单位到单位闪电特效
    /// </summary>
    /// <param name="sfx_res_id"> 特效编号 </param>
    /// <param name="source_unit"> 起点单位 </param>
    /// <param name="source_socket"> 起点单位挂接点名称 </param>
    /// <param name="target_unit"> 终点单位 </param>
    /// <param name="target_socket"> 起点单位挂接点名称 </param>
    /// <param name="duration"> 持续时间 </param>
    /// <param name="immediately"> 是否立即删除 </param>
    /// <param name="use_sys_d_destroy_way"> 特效删除的方式是否读表 </param>
    /// <returns>特效</returns>
    public static extern LinkSfx create_link_sfx_from_unit_to_unit(int? sfx_res_id,Unit source_unit,string source_socket,Unit target_unit,string target_socket,double? duration,bool? immediately,bool? use_sys_d_destroy_way);

    /// <summary>
    /// 创建点到单位闪电特效
    /// </summary>
    /// <param name="sfx_res_id"> 特效编号 </param>
    /// <param name="source_point"> 起点 </param>
    /// <param name="source_height"> 起点高度 </param>
    /// <param name="source_unit"> 终点单位 </param>
    /// <param name="source_socket"> 起点单位挂接点名称 </param>
    /// <param name="duration"> 持续时间 </param>
    /// <param name="immediately"> 是否立即删除 </param>
    /// <param name="use_sys_d_destroy_way"> 特效删除的方式是否读表 </param>
    /// <returns>特效</returns>
    public static extern LinkSfx create_link_sfx_from_point_to_unit(int? sfx_res_id,Point source_point,Fix32 source_height,Unit source_unit,string source_socket,double? duration,bool? immediately,bool? use_sys_d_destroy_way);

    /// <summary>
    /// 创建点到点闪电特效
    /// </summary>
    /// <param name="sfx_res_id"> 特效编号 </param>
    /// <param name="source_point"> 起点 </param>
    /// <param name="source_height"> 起点高度 </param>
    /// <param name="target_point"> 终点 </param>
    /// <param name="target_height"> 终点高度 </param>
    /// <param name="duration"> 持续时间 </param>
    /// <param name="immediately"> 是否立即删除 </param>
    /// <param name="use_sys_d_destroy_way"> 特效删除的方式是否读表 </param>
    /// <returns>特效</returns>
    public static extern LinkSfx create_link_sfx_from_point_to_point(int? sfx_res_id,Point source_point,Fix32 source_height,Point target_point,Fix32 target_height,double? duration,bool? immediately,bool? use_sys_d_destroy_way);

    /// <summary>
    /// 设置闪电特效的位置点
    /// </summary>
    /// <param name="sfx_entity"> 特效 </param>
    /// <param name="source_or_target"> 起点/终点 </param>
    /// <param name="point"> 点 </param>
    /// <param name="height"> 高度 </param>
    /// <returns></returns>
    public static extern void set_link_sfx_point(LinkSfx sfx_entity,int? source_or_target,Point point,double? height);

    /// <summary>
    /// 设置闪电特效单位附加点
    /// </summary>
    /// <param name="sfx_entity"> 特效 </param>
    /// <param name="source_or_target"> 起点/终点 </param>
    /// <param name="unit"> 单位 </param>
    /// <param name="socket"> 单位挂接点 </param>
    /// <returns></returns>
    public static extern void set_link_sfx_unit_socket(LinkSfx sfx_entity,int? source_or_target,Unit unit,string socket);

    /// <summary>
    /// 移除特效
    /// </summary>
    /// <param name="sfx_entity"> 特效 </param>
    /// <param name="immediately"> 立即移除表现 </param>
    /// <param name="use_sys_d_destroy_way"> 特效删除的方式是否读表 </param>
    /// <returns></returns>
    public static extern void remove_link_sfx(LinkSfx sfx_entity,bool? immediately,bool? use_sys_d_destroy_way);

    /// <summary>
    /// 设置特效是否显示
    /// </summary>
    /// <param name="sfx_entity"> 特效 </param>
    /// <param name="b_show"> 是否显示 </param>
    /// <returns></returns>
    public static extern void enable_link_sfx_show(LinkSfx sfx_entity,bool? b_show);

    /// <summary>
    /// 设置链接特效
    /// </summary>
    /// <param name="sfx_entity"> 特效 </param>
    /// <param name="role"> 玩家 </param>
    /// <param name="b_visible"> 开关 </param>
    /// <returns></returns>
    public static extern void enable_link_sfx_visible(LinkSfx sfx_entity,Role role,bool? b_visible);

    /// <summary>
    /// 设置特效
    /// </summary>
    /// <param name="sfx_entity"> 特效 </param>
    /// <param name="role"> 玩家 </param>
    /// <param name="b_visible"> 开关 </param>
    /// <returns></returns>
    public static extern void enable_sfx_visible(Sfx sfx_entity,Role role,bool? b_visible);

    /// <summary>
    /// 创建特效到点
    /// </summary>
    /// <param name="sfx_id"> 特效编号 </param>
    /// <param name="point"> 点 </param>
    /// <param name="face_angle"> 面向角度 </param>
    /// <param name="scale"> 缩放比例 </param>
    /// <param name="height"> 高度 </param>
    /// <param name="duration"> 持续时间 </param>
    /// <param name="immediately"> 是否立即删除 </param>
    /// <param name="use_sys_d_destroy_way"> 特效删除的方式是否读表 </param>
    /// <returns>特效</returns>
    public static extern Sfx create_sfx_on_point(int? sfx_id,Point point,double? face_angle,double? scale,double? height,double? duration,bool? immediately,bool? use_sys_d_destroy_way);

    /// <summary>
    /// 创建特效到单位附加点
    /// </summary>
    /// <param name="sfx_id"> 特效编号 </param>
    /// <param name="unit"> 单位 </param>
    /// <param name="socket"> 单位挂接点 </param>
    /// <param name="b_follow_rotate"> 是否跟随单位旋转 </param>
    /// <param name="b_follow_scale"> 是否跟随单位缩放 </param>
    /// <param name="scale"> 缩放比例 </param>
    /// <param name="duration"> 持续时间 </param>
    /// <param name="angle"> 角度 </param>
    /// <param name="immediately"> 是否立即删除 </param>
    /// <param name="use_sys_d_destroy_way"> 特效删除的方式是否读表 </param>
    /// <returns>特效</returns>
    public static extern Sfx create_sfx_on_unit(int? sfx_id,Unit unit,string socket,bool? b_follow_rotate,bool? b_follow_scale,double? scale,double? duration,double? angle,bool? immediately,bool? use_sys_d_destroy_way);

    /// <summary>
    /// 创建特效到单位附加点（跟随旋转使用枚举）
    /// </summary>
    /// <param name="sfx_id"> 特效编号 </param>
    /// <param name="unit"> 单位 </param>
    /// <param name="socket"> 单位挂接点 </param>
    /// <param name="rotate_type"> 跟随旋转方式 </param>
    /// <param name="b_follow_scale"> 是否跟随单位缩放 </param>
    /// <param name="scale"> 缩放比例 </param>
    /// <param name="duration"> 持续时间 </param>
    /// <param name="angle"> 角度 </param>
    /// <param name="immediately"> 是否立即删除 </param>
    /// <param name="use_sys_d_destroy_way"> 特效删除的方式是否读表 </param>
    /// <returns>特效</returns>
    public static extern Sfx create_sfx_on_unit_new(int? sfx_id,Unit unit,string socket,int? rotate_type,bool? b_follow_scale,double? scale,double? duration,double? angle,bool? immediately,bool? use_sys_d_destroy_way);

    /// <summary>
    /// 删除特效
    /// </summary>
    /// <param name="sfx_entity"> 特效 </param>
    /// <param name="immediately"> 立即移除表现 </param>
    /// <param name="use_sys_d"> 删除时是否读取系统默认特效 </param>
    /// <returns></returns>
    public static extern void delete_sfx(Sfx sfx_entity,bool? immediately,bool? use_sys_d);

    /// <summary>
    /// 设置特效旋转
    /// </summary>
    /// <param name="sfx_entity"> 特效 </param>
    /// <param name="rotate_x"> x轴旋转 </param>
    /// <param name="rotate_y"> y轴旋转 </param>
    /// <param name="rotate_z"> z轴旋转 </param>
    /// <returns></returns>
    public static extern void set_sfx_rotate(Sfx sfx_entity,double? rotate_x,double? rotate_y,double? rotate_z);

    /// <summary>
    /// 设置特效朝向
    /// </summary>
    /// <param name="sfx_entity"> 特效 </param>
    /// <param name="face_angle"> 朝向 </param>
    /// <returns></returns>
    public static extern void set_sfx_angle(Sfx sfx_entity,double? face_angle);

    /// <summary>
    /// 设置特效颜色
    /// </summary>
    /// <param name="sfx_entity"> 特效 </param>
    /// <param name="x"> x </param>
    /// <param name="y"> y </param>
    /// <param name="z"> z </param>
    /// <param name="w"> w </param>
    /// <returns></returns>
    public static extern void set_sfx_color(Sfx sfx_entity,double? x,double? y,double? z,double? w);

    /// <summary>
    /// 设置特效缩放
    /// </summary>
    /// <param name="sfx_entity"> 特效 </param>
    /// <param name="scale_x"> x轴缩放 </param>
    /// <param name="scale_y"> y轴缩放 </param>
    /// <param name="scale_z"> z轴缩放 </param>
    /// <returns></returns>
    public static extern void set_sfx_scale(Sfx sfx_entity,double? scale_x,double? scale_y,double? scale_z);

    /// <summary>
    /// 设置特效高度
    /// </summary>
    /// <param name="sfx_entity"> 特效 </param>
    /// <param name="height"> 高度 </param>
    /// <returns></returns>
    public static extern void set_sfx_height(Sfx sfx_entity,double? height);

    /// <summary>
    /// 设置特效到点
    /// </summary>
    /// <param name="sfx_entity"> 特效 </param>
    /// <param name="point"> 点 </param>
    /// <param name="fluent_move"> 平滑移动 </param>
    /// <returns></returns>
    public static extern void set_sfx_position(Sfx sfx_entity,Point point,bool? fluent_move);

    /// <summary>
    /// 设置特效动画速度
    /// </summary>
    /// <param name="sfx_entity"> 特效 </param>
    /// <param name="speed"> 动画速度 </param>
    /// <returns></returns>
    public static extern void set_sfx_animation_speed(Sfx sfx_entity,double? speed);

    /// <summary>
    /// 设置特效持续时间
    /// </summary>
    /// <param name="sfx_entity"> 特效 </param>
    /// <param name="duration"> 持续时间 </param>
    /// <returns></returns>
    public static extern void set_sfx_duration(Sfx sfx_entity,double? duration);

    /// <summary>
    /// 播放屏幕特效
    /// </summary>
    /// <param name="sfx_key"> 特效编号 </param>
    /// <param name="keep_time"> 持续时间 </param>
    /// <param name="role"> 玩家 </param>
    /// <param name="render_after_post"> 是否后处理之后渲染 </param>
    /// <returns></returns>
    public static extern void add_sfx_to_camera(int? sfx_key,double? keep_time,Role role,bool? render_after_post);

    /// <summary>
    /// 播放屏幕特效并返回特效实体
    /// </summary>
    /// <param name="sfx_key"> 特效编号 </param>
    /// <param name="keep_time"> 持续时间 </param>
    /// <param name="role"> 玩家 </param>
    /// <param name="render_after_post"> 是否后处理之后渲染 </param>
    /// <param name="immediately"> 是否立即删除 </param>
    /// <param name="use_sys_d_destroy_way"> 特效删除的方式是否读表 </param>
    /// <returns>特效</returns>
    public static extern Sfx add_sfx_to_camera_with_return(int? sfx_key,double? keep_time,Role role,bool? render_after_post,bool? immediately,bool? use_sys_d_destroy_way);

    /// <summary>
    /// 震动屏幕
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="period"> 震动周期 </param>
    /// <param name="amplitude_vector"> 振幅大小 </param>
    /// <param name="increase_vector"> 增幅值 </param>
    /// <param name="keep_time"> 震动持续时间 </param>
    /// <returns></returns>
    public static extern void start_shake(Role role,double? period,Point amplitude_vector,Point increase_vector,double? keep_time);

    /// <summary>
    /// 链接特效路径转字符串
    /// </summary>
    /// <param name="val"> 特效编号 </param>
    /// <returns>字符串</returns>
    public static extern string link_sfx_key_to_str(int? val);

    /// <summary>
    /// 字符串转链接特效路径
    /// </summary>
    /// <param name="val"> 字符串 </param>
    /// <returns>特效编号</returns>
    public static extern int? str_to_link_sfx_key(string val);

    /// <summary>
    /// 特效转字符串
    /// </summary>
    /// <param name="obj"> 特效 </param>
    /// <returns>字符串</returns>
    public static extern string sfx_to_str(Sfx obj);

    /// <summary>
    /// 粒子特效路径转字符串
    /// </summary>
    /// <param name="val"> 特效编号 </param>
    /// <returns>字符串</returns>
    public static extern string particle_sfx_key_to_str(int? val);

    /// <summary>
    /// 字符串转粒子特效路径
    /// </summary>
    /// <param name="val"> 特效编号 </param>
    /// <returns>特效编号</returns>
    public static extern int? str_to_particle_sfx_key(string val);

    /// <summary>
    /// 链接特效转字符串
    /// </summary>
    /// <param name="obj"> 链接特效 </param>
    /// <returns>字符串</returns>
    public static extern string link_sfx_to_str(LinkSfx obj);

    /// <summary>
    /// get_table
    /// </summary>
    /// <param name="table_name"> table_name </param>
    /// <returns>table</returns>
    public static extern dynamic get_table(string table_name);

    /// <summary>
    /// set_table_value
    /// </summary>
    /// <param name="table"> table </param>
    /// <param name="value"> value </param>
    /// <param name="key1"> key1 </param>
    /// <param name="key2"> key2 </param>
    /// <param name="key3"> key3 </param>
    /// <param name="key4"> key4 </param>
    /// <param name="key5"> key5 </param>
    /// <param name="value_convert_func"> value_convert_func </param>
    /// <returns></returns>
    public static extern void set_table_value(dynamic table,dynamic value,string key1,string key2,string key3,string key4,string key5,string value_convert_func);

    /// <summary>
    /// table_has_key
    /// </summary>
    /// <param name="table"> table </param>
    /// <param name="key"> key </param>
    /// <returns>bool</returns>
    public static extern bool? table_has_key(dynamic table,string key);

    /// <summary>
    /// get_table_var
    /// </summary>
    /// <param name="table"> table </param>
    /// <param name="key1"> key1 </param>
    /// <param name="key2"> key2 </param>
    /// <param name="key3"> key3 </param>
    /// <param name="key4"> key4 </param>
    /// <param name="key5"> key5 </param>
    /// <param name="default_value"> default </param>
    /// <param name="value_convert_func"> value_convert_func </param>
    /// <param name="extra_info"> extra_info(for debug) </param>
    /// <returns>value</returns>
    public static extern dynamic get_table_var(dynamic table,string key1,string key2,string key3,string key4,string key5,dynamic default_value,string value_convert_func,dynamic extra_info);

    /// <summary>
    /// remove_table_value
    /// </summary>
    /// <param name="table"> table </param>
    /// <param name="key1"> key1 </param>
    /// <param name="key2"> key2 </param>
    /// <param name="key3"> key3 </param>
    /// <param name="key4"> key4 </param>
    /// <param name="key5"> key5 </param>
    /// <returns></returns>
    public static extern void remove_table_value(dynamic table,string key1,string key2,string key3,string key4,string key5);

    /// <summary>
    /// remove_table_value_n
    /// </summary>
    /// <param name="table"> table </param>
    /// <param name="n"> N </param>
    /// <returns></returns>
    public static extern void remove_table_value_n(dynamic table,int? n);

    /// <summary>
    /// insert_table_value
    /// </summary>
    /// <param name="table"> table </param>
    /// <param name="value"> value </param>
    /// <param name="value_convert_func"> value_convert_func </param>
    /// <param name="pos"> pos </param>
    /// <returns></returns>
    public static extern void insert_table_value(dynamic table,dynamic value,string value_convert_func,int? pos);

    /// <summary>
    /// get_new_table
    /// </summary>
    /// <returns>table</returns>
    public static extern dynamic get_new_table();

    /// <summary>
    /// clear_table
    /// </summary>
    /// <param name="table"> table </param>
    /// <returns></returns>
    public static extern void clear_table(dynamic table);

    /// <summary>
    /// encrypt_table
    /// </summary>
    /// <param name="table"> table </param>
    /// <returns></returns>
    public static extern void encrypt_table(dynamic table);

    /// <summary>
    /// get_copy_of_table
    /// </summary>
    /// <param name="table"> table </param>
    /// <returns>table</returns>
    public static extern dynamic get_copy_of_table(dynamic table);

    /// <summary>
    /// dump_table
    /// </summary>
    /// <param name="table"> table </param>
    /// <returns></returns>
    public static extern void dump_table(dynamic table);

    /// <summary>
    /// get_table_length
    /// </summary>
    /// <param name="table"> table </param>
    /// <returns>length</returns>
    public static extern int? get_table_length(dynamic table);

    /// <summary>
    /// 表 - 是否为空表
    /// </summary>
    /// <param name="table"> table </param>
    /// <returns>是否为空</returns>
    public static extern bool? is_table_empty(dynamic table);

    /// <summary>
    /// get_iter_table_value_by_type
    /// </summary>
    /// <param name="item"> table iter item </param>
    /// <param name="default_value"> default </param>
    /// <param name="value_convert_func"> value_convert_func </param>
    /// <returns>value</returns>
    public static extern dynamic get_iter_table_value(dynamic item,dynamic default_value,string value_convert_func);

    /// <summary>
    /// table迭代器
    /// </summary>
    /// <param name="t"> TAB </param>
    /// <returns>Python迭代器</returns>
    public static extern dynamic table_iterator(dynamic t);

    /// <summary>
    /// table迭代器（保序）
    /// </summary>
    /// <param name="t"> TAB </param>
    /// <returns>Python迭代器</returns>
    public static extern dynamic ordered_table_iterator(dynamic t);

    /// <summary>
    /// table迭代器
    /// </summary>
    /// <param name="t"> TAB </param>
    /// <param name="ordered"> 是否仅遍历数组部分（保序） </param>
    /// <returns>Python迭代器</returns>
    public static extern dynamic table_iterator_new(dynamic t,bool? ordered);

    /// <summary>
    /// serialize_to_string
    /// </summary>
    /// <param name="table"> table </param>
    /// <returns>value</returns>
    public static extern string serialize_to_string(dynamic table);

    /// <summary>
    /// unserialize_by_string
    /// </summary>
    /// <param name="lua"> lua </param>
    /// <returns>table</returns>
    public static extern dynamic unserialize_by_string(string lua);

    /// <summary>
    /// sort_table_by
    /// </summary>
    /// <param name="table"> table </param>
    /// <param name="key"> key </param>
    /// <param name="order"> order </param>
    /// <param name="save_as"> save_as </param>
    /// <returns></returns>
    public static extern void sort_table_by(dynamic table,string key,int? order,dynamic save_as);

    /// <summary>
    /// 调试-Dialog窗口输出帧计时器信息
    /// </summary>
    /// <param name="show_tasks"> 显示任务 </param>
    /// <returns></returns>
    public static extern void dbg_dialog_print_frame_timer_info(bool? show_tasks);

    /// <summary>
    /// 获取最近创建的计时器
    /// </summary>
    /// <returns>计时器</returns>
    public static extern Timer get_last_created_timer();

    /// <summary>
    /// 开启计时器
    /// </summary>
    /// <param name="name"> 计时器名称 </param>
    /// <param name="once"> 是否单次 </param>
    /// <param name="interval"> 时间 </param>
    /// <param name="context"> 上下文 </param>
    /// <returns></returns>
    public static extern void start_timer(string name,bool? once,Fix32 interval,dynamic context);

    /// <summary>
    /// 关闭计时器
    /// </summary>
    /// <param name="name"> 计时器名称 </param>
    /// <returns></returns>
    public static extern void stop_timer(string name);

    /// <summary>
    /// 开启计时器（新）
    /// </summary>
    /// <param name="time_delay"> 延迟时间 </param>
    /// <param name="repeat_count"> 循环次数 </param>
    /// <param name="run_at_start"> 启动时立即运行 </param>
    /// <param name="timer_callback"> 回调函数 </param>
    /// <param name="context"> 上下文 </param>
    /// <returns>计时器编号</returns>
    public static extern Timer run_lua_timer(Fix32 time_delay,int? repeat_count,bool? run_at_start,dynamic timer_callback,dynamic context);

    /// <summary>
    /// 计时器是否正在运行
    /// </summary>
    /// <param name="timer_id"> 计时器编号 </param>
    /// <returns>是否合法</returns>
    public static extern bool? is_timer_valid(Timer timer_id);

    /// <summary>
    /// 删除计时器
    /// </summary>
    /// <param name="timer_id"> 计时器编号 </param>
    /// <returns></returns>
    public static extern void delete_timer(Timer timer_id);

    /// <summary>
    /// 暂停计时器
    /// </summary>
    /// <param name="timer_id"> 计时器编号 </param>
    /// <returns></returns>
    public static extern void pause_timer(Timer timer_id);

    /// <summary>
    /// 恢复计时器
    /// </summary>
    /// <param name="timer_id"> 计时器编号 </param>
    /// <returns></returns>
    public static extern void resume_timer(Timer timer_id);

    /// <summary>
    /// 设置计时器剩余次数
    /// </summary>
    /// <param name="timer_id"> 计时器编号 </param>
    /// <param name="count"> 剩余次数 </param>
    /// <returns></returns>
    public static extern void timer_set_left_count(Timer timer_id,int? count);

    /// <summary>
    /// 设置计时器剩余时间
    /// </summary>
    /// <param name="timer_id"> 计时器编号 </param>
    /// <param name="time"> 剩余时间 </param>
    /// <returns></returns>
    public static extern void timer_set_left_time(Timer timer_id,Fix32 time);

    /// <summary>
    /// 设置计时器间隔时间
    /// </summary>
    /// <param name="timer_id"> 计时器编号 </param>
    /// <param name="time"> 间隔时间 </param>
    /// <returns></returns>
    public static extern void timer_set_interval_time(Timer timer_id,Fix32 time);

    /// <summary>
    /// 设置帧计时器间隔帧数
    /// </summary>
    /// <param name="timer_id"> 计时器编号 </param>
    /// <param name="frame"> 间隔帧数 </param>
    /// <returns></returns>
    public static extern void timer_set_interval_frame(Timer timer_id,int? frame);

    /// <summary>
    /// 获取计时器设置的时间
    /// </summary>
    /// <param name="timer_id"> 计时器 </param>
    /// <returns>时间</returns>
    public static extern Fix32 get_timer_time_out_time(Timer timer_id);

    /// <summary>
    /// 获取计时器经过的时间
    /// </summary>
    /// <param name="timer_id"> 计时器 </param>
    /// <returns>时间</returns>
    public static extern Fix32 get_timer_elapsed_time(Timer timer_id);

    /// <summary>
    /// 获取计时器剩余时间
    /// </summary>
    /// <param name="timer_id"> 计时器 </param>
    /// <returns>时间</returns>
    public static extern Fix32 get_timer_remaining_time(Timer timer_id);

    /// <summary>
    /// 获取计时器初始计数
    /// </summary>
    /// <param name="timer_id"> 计时器 </param>
    /// <returns>次数</returns>
    public static extern int? get_timer_init_count(Timer timer_id);

    /// <summary>
    /// 获取计时器剩余计数
    /// </summary>
    /// <param name="timer_id"> 计时器 </param>
    /// <returns>次数</returns>
    public static extern int? get_timer_remaining_count(Timer timer_id);

    /// <summary>
    /// 获取独立计时器当前计时秒数
    /// </summary>
    /// <param name="name"> 倒计时名称 </param>
    /// <returns>计时秒数</returns>
    public static extern Fix32 get_actor_timer_run_time(string name);

    /// <summary>
    /// 获取当前到期的计时器
    /// </summary>
    /// <param name="timer_id"> 计时器 </param>
    /// <returns>计时器</returns>
    public static extern Timer get_current_expired_timer(Timer timer_id);

    /// <summary>
    /// 计时器是否存在
    /// </summary>
    /// <param name="timer_id"> 计时器编号 </param>
    /// <returns>是否合法</returns>
    public static extern bool? timer_is_exist(Timer timer_id);

    /// <summary>
    /// 添加定时回调
    /// </summary>
    /// <param name="interval"> 间隔时间 </param>
    /// <param name="is_repeat"> 是否重复 </param>
    /// <param name="func"> 回调 </param>
    /// <param name="desc"> 描述 </param>
    /// <returns>timer_id</returns>
    public static extern int? add_timer(Fix32 interval,bool? is_repeat,dynamic func,string desc);

    /// <summary>
    /// 取消定时回调
    /// </summary>
    /// <param name="timer_id"> timer_id </param>
    /// <returns></returns>
    public static extern void cancel_timer(int? timer_id);

    /// <summary>
    /// 游戏当前昼夜时间
    /// </summary>
    /// <returns>时间</returns>
    public static extern Fix32 get_cur_day_and_night_time();

    /// <summary>
    /// 设置昼夜游戏时间
    /// </summary>
    /// <param name="time"> 时间（0-24） </param>
    /// <returns></returns>
    public static extern void set_day_and_night_time(Fix32 time);

    /// <summary>
    /// 设置昼夜游戏时间的流逝速度（倍数）
    /// </summary>
    /// <param name="time_multiple"> 倍数，非负数 </param>
    /// <returns></returns>
    public static extern void set_day_and_night_time_speed(Fix32 time_multiple);

    /// <summary>
    /// 设置昼夜游戏时间的流逝速度（百分比）
    /// </summary>
    /// <param name="time_per"> 百分比，非负数 </param>
    /// <returns></returns>
    public static extern void set_day_and_night_time_speed_per(Fix32 time_per);

    /// <summary>
    /// 打开/关闭时间流逝
    /// </summary>
    /// <param name="flag"> 布尔值 </param>
    /// <returns></returns>
    public static extern void open_or_close_time_speed(bool? flag);

    /// <summary>
    /// 创建人造时间，并持续一段时间
    /// </summary>
    /// <param name="create_time"> 创建的时间 </param>
    /// <param name="time_delay"> 持续的时间 </param>
    /// <returns></returns>
    public static extern void create_day_and_night_human_time(Fix32 create_time,Fix32 time_delay);

    /// <summary>
    /// 获取当前游戏模式
    /// </summary>
    /// <returns>游戏模式</returns>
    public static extern GameMode get_game_mode();

    /// <summary>
    /// 暂停游戏
    /// </summary>
    /// <returns></returns>
    public static extern void pause_game();

    /// <summary>
    /// 为玩家结束游戏
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="result"> 战斗结果 </param>
    /// <param name="show"> 显示结束面板 </param>
    /// <param name="send"> 是否上传玩家排行榜分数 </param>
    /// <param name="score"> 排行榜分数 </param>
    /// <param name="accumulate"> 是否累积计算分数 </param>
    /// <returns></returns>
    public static extern void set_melee_result_by_role(Role role,string result,bool? show,bool? send,int? score,bool? accumulate);

    /// <summary>
    /// 结束玩家游戏
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="result"> 战斗结果 </param>
    /// <param name="comp_uid"> 控件uid </param>
    /// <param name="send"> 是否上传玩家排行榜分数 </param>
    /// <param name="score"> 排行榜分数 </param>
    /// <param name="accumulate"> 是否累积计算分数 </param>
    /// <returns></returns>
    public static extern void set_melee_result_by_role_2(Role role,string result,string comp_uid,bool? send,int? score,bool? accumulate);

    /// <summary>
    /// 上传玩家排行榜分数
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="score"> 排行榜分数 </param>
    /// <param name="accumulate"> 是否累积计算分数 </param>
    /// <returns></returns>
    public static extern void upload_role_billboard_score(Role role,int? score,bool? accumulate);

    /// <summary>
    /// 结束游戏
    /// </summary>
    /// <param name="player_results"> 玩家结算信息 </param>
    /// <returns></returns>
    public static extern void game_end(dynamic player_results);

    /// <summary>
    /// 申请开始下一轮
    /// </summary>
    /// <param name="fast_restart"> 是否快速重置 </param>
    /// <returns></returns>
    public static extern void request_new_round(bool? fast_restart);

    /// <summary>
    /// 切换至关卡
    /// </summary>
    /// <param name="level_id_str"> 关卡ID </param>
    /// <returns></returns>
    public static extern void request_switch_level(Map level_id_str);

    /// <summary>
    /// 获取当前地图的指定key的存档值
    /// </summary>
    /// <param name="key"> 指定的全局存档key值 </param>
    /// <returns>全局存档值</returns>
    public static extern int? get_global_map_archive(string key);

    /// <summary>
    /// 获取地图全局指定key存档的第n名玩家的昵称
    /// </summary>
    /// <param name="rank_key"> key值 </param>
    /// <param name="num"> 第n名 </param>
    /// <returns>昵称</returns>
    public static extern string get_rank_player_nickname(string rank_key,int? num);

    /// <summary>
    /// 获取地图全局指定key存档的第n名玩家的存档值
    /// </summary>
    /// <param name="rank_key"> key值 </param>
    /// <param name="num"> 第n名 </param>
    /// <returns>存档值</returns>
    public static extern int? get_rank_player_global_archive_value(string rank_key,int? num);

    /// <summary>
    /// 获取玩家指定的个人存档栏位的第n名玩家的昵称
    /// </summary>
    /// <param name="archive_key"> 玩家存档栏位 </param>
    /// <param name="num"> 第n名 </param>
    /// <returns>昵称</returns>
    public static extern string get_archive_rank_player_nickname(int? archive_key,int? num);

    /// <summary>
    /// 获取玩家指定的个人存档栏位的第n名玩家的存档值
    /// </summary>
    /// <param name="archive_key"> 玩家存档栏位 </param>
    /// <param name="num"> 第n名 </param>
    /// <returns>存档值</returns>
    public static extern int? get_archive_rank_player_archive_value(int? archive_key,int? num);

    /// <summary>
    /// 调整逻辑帧率
    /// </summary>
    /// <param name="fps"> 目标帧率 </param>
    /// <returns></returns>
    public static extern void api_change_logic_fps(int? fps);

    /// <summary>
    /// 开启软暂停
    /// </summary>
    /// <returns></returns>
    public static extern void api_soft_pause_game();

    /// <summary>
    /// 关闭软暂停
    /// </summary>
    /// <returns></returns>
    public static extern void api_soft_resume_game();

    /// <summary>
    /// 本地玩家编号
    /// </summary>
    /// <returns>玩家编号</returns>
    public static extern int? get_owner_role_id();

    /// <summary>
    /// 本地玩家鼠标位置
    /// </summary>
    /// <returns>鼠标位置</returns>
    public static extern Point get_local_player_pointing_pos();

    /// <summary>
    /// 本地玩家鼠标屏幕位置X
    /// </summary>
    /// <returns>鼠标屏幕位置X</returns>
    public static extern int? get_local_player_ui_pos_x();

    /// <summary>
    /// 本地玩家鼠标屏幕位置Y
    /// </summary>
    /// <returns>鼠标屏幕位置Y</returns>
    public static extern int? get_local_player_ui_pos_y();

    /// <summary>
    /// 本地玩家鼠标屏幕位置X的窗口占比
    /// </summary>
    /// <returns>占比值</returns>
    public static extern double? get_local_role_ui_x_per();

    /// <summary>
    /// 本地玩家鼠标屏幕位置y的窗口占比
    /// </summary>
    /// <returns>占比值</returns>
    public static extern double? get_local_role_ui_y_per();

    /// <summary>
    /// 本地玩家摄像机朝向
    /// </summary>
    /// <returns>摄像机朝向</returns>
    public static extern Point get_local_player_camera_direction();

    /// <summary>
    /// 本地玩家摄像机中心射线检测
    /// </summary>
    /// <returns>交点</returns>
    public static extern Point get_local_player_camera_center_raycast();

    /// <summary>
    /// 获取游戏开始时间戳
    /// </summary>
    /// <returns>游戏开始时间戳</returns>
    public static extern int? get_game_init_time_stamp();

    /// <summary>
    /// 获取本地时间戳
    /// </summary>
    /// <returns>本地时间戳</returns>
    public static extern int? get_local_time_stamp();

    /// <summary>
    /// 添加本地计时器
    /// </summary>
    /// <param name="delay"> 延迟 </param>
    /// <param name="callback"> 回调 </param>
    /// <returns>计时器编号</returns>
    public static extern int? add_local_timer(double? delay,dynamic callback);

    /// <summary>
    /// 添加本地循环计时器
    /// </summary>
    /// <param name="interval"> 间隔 </param>
    /// <param name="callback"> 回调 </param>
    /// <returns>计时器编号</returns>
    public static extern int? add_local_repeat_timer(double? interval,dynamic callback);

    /// <summary>
    /// 取消本地计时器
    /// </summary>
    /// <param name="timer_id"> 计时器编号 </param>
    /// <returns></returns>
    public static extern void cancel_local_timer(int? timer_id);

    /// <summary>
    /// 强制开启/关闭鼠标同步
    /// </summary>
    /// <param name="enable"> 开关 </param>
    /// <returns></returns>
    public static extern void force_enable_mouse_sync(bool? enable);

    /// <summary>
    /// 强制开启/关闭按键同步
    /// </summary>
    /// <param name="enable"> 开关 </param>
    /// <returns></returns>
    public static extern void force_enable_keyboard_sync(bool? enable);

    /// <summary>
    /// 强制开启/关闭镜头同步
    /// </summary>
    /// <param name="enable"> 开关 </param>
    /// <returns></returns>
    public static extern void force_enable_camera_sync(bool? enable);

    /// <summary>
    /// 启动云信并绑定对象
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="entity"> 单位 </param>
    /// <returns></returns>
    public static extern void init_bind_nim(Role role,Unit entity);

    /// <summary>
    /// 启用/禁用垂直同步
    /// </summary>
    /// <param name="enable"> 开启 </param>
    /// <returns></returns>
    public static extern void api_set_v_sync(bool? enable);

    /// <summary>
    /// 设置本地改键
    /// </summary>
    /// <param name="key"> 原始按键 </param>
    /// <param name="target_key"> 目标按键 </param>
    /// <returns></returns>
    public static extern void api_set_local_mapping_key(int? key,int? target_key);

    /// <summary>
    /// 取消本地改键
    /// </summary>
    /// <param name="key"> 原始按键 </param>
    /// <returns></returns>
    public static extern void api_cancel_local_mapping_key(int? key);

    /// <summary>
    /// 清空本地改键
    /// </summary>
    /// <returns></returns>
    public static extern void api_clear_local_mapping_key();

    /// <summary>
    /// 设置是否使用内置本地改键方案
    /// </summary>
    /// <param name="enable"> 是否使用 </param>
    /// <returns></returns>
    public static extern void api_set_builtin_key_control_enable(bool? enable);

    /// <summary>
    /// 判断是否使用内置键盘控制
    /// </summary>
    /// <returns>布尔值</returns>
    public static extern bool? api_is_builtin_key_control_enable();

    /// <summary>
    /// 设置玩家镜头模式
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="cam_mod"> 镜头模式 </param>
    /// <param name="ortho_scale"> 正交缩放 </param>
    /// <returns></returns>
    public static extern void api_set_role_camera_mode(Role role,int? cam_mod,double? ortho_scale);

    /// <summary>
    /// 判断玩家单位类型前置条件满足需求
    /// </summary>
    /// <param name="player"> 玩家 </param>
    /// <param name="unity_key"> 单位类型 </param>
    /// <returns>是否满足</returns>
    public static extern bool? check_unit_key_precondition(Role player,int? unity_key);

    /// <summary>
    /// 判断玩家物品类型前置条件满足需求
    /// </summary>
    /// <param name="player"> 玩家 </param>
    /// <param name="item_key"> 物品类型 </param>
    /// <returns>是否满足</returns>
    public static extern bool? check_item_key_precondition(Role player,int? item_key);

    /// <summary>
    /// 判断玩家科技类型前置条件满足需求
    /// </summary>
    /// <param name="player"> 玩家 </param>
    /// <param name="tech_key"> 科技类型 </param>
    /// <returns>是否满足</returns>
    public static extern bool? check_tech_key_precondition(Role player,int? tech_key);

    /// <summary>
    /// 判断玩家技能类型前置条件满足需求
    /// </summary>
    /// <param name="player"> 玩家 </param>
    /// <param name="ability_key"> 技能类型 </param>
    /// <returns>是否满足</returns>
    public static extern bool? check_ability_key_precondition(Role player,int? ability_key);

    /// <summary>
    /// 获取技能类型的前置条件列表
    /// </summary>
    /// <param name="ability_key"> 技能类型 </param>
    /// <returns>前置条件列表</returns>
    public static extern dynamic get_ability_key_precondition_list(int? ability_key);

    /// <summary>
    /// 获取单位类型的前置条件列表
    /// </summary>
    /// <param name="unit_key"> 单位类型 </param>
    /// <returns>前置条件列表</returns>
    public static extern dynamic get_unit_key_precondition_list(int? unit_key);

    /// <summary>
    /// 获取物品类型的前置条件列表
    /// </summary>
    /// <param name="item_key"> 物品类型 </param>
    /// <returns>前置条件列表</returns>
    public static extern dynamic get_item_key_precondition_list(int? item_key);

    /// <summary>
    /// 获取前置条件遍历到的单位类型
    /// </summary>
    /// <param name="iter_data"> 数据 </param>
    /// <returns>单位类型</returns>
    public static extern int? get_pre_condition_iter_unit_key(dynamic iter_data);

    /// <summary>
    /// 获取前置条件遍历到的科技类型
    /// </summary>
    /// <param name="iter_data"> 数据 </param>
    /// <returns>科技类型</returns>
    public static extern int? get_pre_condition_iter_tech_key(dynamic iter_data);

    /// <summary>
    /// 获取前置条件遍历到的单位标签
    /// </summary>
    /// <param name="iter_data"> 数据 </param>
    /// <returns>单位标签</returns>
    public static extern string get_pre_condition_iter_unit_tag(dynamic iter_data);

    /// <summary>
    /// 获取前置条件遍历到的科技标签
    /// </summary>
    /// <param name="iter_data"> 数据 </param>
    /// <returns>科技标签</returns>
    public static extern string get_pre_condition_iter_tech_tag(dynamic iter_data);

    /// <summary>
    /// 获取单位单位类型前置条件的需求值
    /// </summary>
    /// <param name="source_item_key"> 检测的单位 </param>
    /// <param name="target_item_key"> 查询的单位类型 </param>
    /// <returns>需求值</returns>
    public static extern int? get_unit_type_unit_key_pre_condition_require_count(int? source_item_key,int? target_item_key);

    /// <summary>
    /// 获取单位单位标签前置条件的需求值
    /// </summary>
    /// <param name="source_item_key"> 检测的单位 </param>
    /// <param name="target_item_key"> 查询的单位标签 </param>
    /// <returns>需求值</returns>
    public static extern int? get_unit_type_unit_tag_pre_condition_require_count(int? source_item_key,string target_item_key);

    /// <summary>
    /// 获取单位科技类型前置条件的需求值
    /// </summary>
    /// <param name="source_item_key"> 检测的单位 </param>
    /// <param name="target_item_key"> 查询的科技类型 </param>
    /// <returns>需求值</returns>
    public static extern int? get_unit_type_tech_key_pre_condition_require_count(int? source_item_key,int? target_item_key);

    /// <summary>
    /// 获取单位科技标签前置条件的需求值
    /// </summary>
    /// <param name="source_item_key"> 检测的单位 </param>
    /// <param name="target_item_key"> 查询的科技标签 </param>
    /// <returns>需求值</returns>
    public static extern int? get_unit_type_tech_tag_pre_condition_require_count(int? source_item_key,string target_item_key);

    /// <summary>
    /// 获取技能单位类型前置条件的需求值
    /// </summary>
    /// <param name="source_item_key"> 检测的技能 </param>
    /// <param name="target_item_key"> 查询的单位类型 </param>
    /// <returns>需求值</returns>
    public static extern int? get_ability_type_unit_key_pre_condition_require_count(int? source_item_key,int? target_item_key);

    /// <summary>
    /// 获取技能单位标签前置条件的需求值
    /// </summary>
    /// <param name="source_item_key"> 检测的技能 </param>
    /// <param name="target_item_key"> 查询的单位标签 </param>
    /// <returns>需求值</returns>
    public static extern int? get_ability_type_unit_tag_pre_condition_require_count(int? source_item_key,string target_item_key);

    /// <summary>
    /// 获取技能科技类型前置条件的需求值
    /// </summary>
    /// <param name="source_item_key"> 检测的技能 </param>
    /// <param name="target_item_key"> 查询的科技类型 </param>
    /// <returns>需求值</returns>
    public static extern int? get_ability_type_tech_key_pre_condition_require_count(int? source_item_key,int? target_item_key);

    /// <summary>
    /// 获取技能科技标签前置条件的需求值
    /// </summary>
    /// <param name="source_item_key"> 检测的技能 </param>
    /// <param name="target_item_key"> 查询的科技标签 </param>
    /// <returns>需求值</returns>
    public static extern int? get_ability_type_tech_tag_pre_condition_require_count(int? source_item_key,string target_item_key);

    /// <summary>
    /// 获取物品单位类型前置条件的需求值
    /// </summary>
    /// <param name="source_item_key"> 检测的物品 </param>
    /// <param name="target_item_key"> 查询的单位类型 </param>
    /// <returns>需求值</returns>
    public static extern int? get_item_type_unit_key_pre_condition_require_count(int? source_item_key,int? target_item_key);

    /// <summary>
    /// 获取物品单位标签前置条件的需求值
    /// </summary>
    /// <param name="source_item_key"> 检测的物品 </param>
    /// <param name="target_item_key"> 查询的单位标签 </param>
    /// <returns>需求值</returns>
    public static extern int? get_item_type_unit_tag_pre_condition_require_count(int? source_item_key,string target_item_key);

    /// <summary>
    /// 获取物品科技类型前置条件的需求值
    /// </summary>
    /// <param name="source_item_key"> 检测的物品 </param>
    /// <param name="target_item_key"> 查询的科技类型 </param>
    /// <returns>需求值</returns>
    public static extern int? get_item_type_tech_key_pre_condition_require_count(int? source_item_key,int? target_item_key);

    /// <summary>
    /// 获取物品科技标签前置条件的需求值
    /// </summary>
    /// <param name="source_item_key"> 检测的物品 </param>
    /// <param name="target_item_key"> 查询的科技标签 </param>
    /// <returns>需求值</returns>
    public static extern int? get_item_type_tech_tag_pre_condition_require_count(int? source_item_key,string target_item_key);

    /// <summary>
    /// 设置控件适配
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="comp_name"> 控件uid </param>
    /// <param name="direction"> 方向 </param>
    /// <param name="offset"> offset </param>
    /// <returns></returns>
    public static extern void set_ui_comp_adapt_option(Role role,string comp_name,int? direction,double? offset);

    /// <summary>
    /// 使玩家触发界面事件
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="comp_name"> 控件uid </param>
    /// <param name="event_name"> 事件名 </param>
    /// <returns></returns>
    public static extern void trigger_ui_event(Role role,string comp_name,string event_name);

    /// <summary>
    /// 控制控件跟随鼠标
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="comp_name"> 控件uid </param>
    /// <param name="is_follow"> 是否跟随 </param>
    /// <param name="offset_x"> 偏移x </param>
    /// <param name="offset_y"> 偏移y </param>
    /// <returns></returns>
    public static extern void set_ui_comp_follow_mouse(Role role,string comp_name,bool? is_follow,double? offset_x,double? offset_y);

    /// <summary>
    /// 获得坐标是否在控件内
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="x"> x </param>
    /// <param name="y"> y </param>
    /// <param name="comp_name"> 控件uid </param>
    /// <returns>是否在其中</returns>
    public static extern bool? pos_in_comp_box(Role role,double? x,double? y,string comp_name);

    /// <summary>
    /// 设置模型控件的镜头模式
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="comp_uid"> 控件uid </param>
    /// <param name="camera_mod"> 镜头模式 </param>
    /// <returns></returns>
    public static extern void set_model_comp_camera_mod(Role role,string comp_uid,int? camera_mod);

    /// <summary>
    /// 设置不同状态下的按钮文本
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="comp_uid"> 控件uid </param>
    /// <param name="btn_status"> 按钮状态 </param>
    /// <param name="btn_text"> 文本 </param>
    /// <returns></returns>
    public static extern void set_ui_btn_status_string(Role role,string comp_uid,int? btn_status,string btn_text);

    /// <summary>
    /// 设置不同状态下的按钮图片
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="comp_uid"> 控件uid </param>
    /// <param name="btn_status"> 按钮状态 </param>
    /// <param name="btn_image"> 图片 </param>
    /// <returns></returns>
    public static extern void set_ui_btn_status_image(Role role,string comp_uid,int? btn_status,int? btn_image);

    /// <summary>
    /// 设置列表控件的布局方式
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="comp_uid"> 控件uid </param>
    /// <param name="scrollview_type"> 布局方式 </param>
    /// <returns></returns>
    public static extern void set_ui_scrollview_type(Role role,string comp_uid,int? scrollview_type);

    /// <summary>
    /// 设置列表控件的尺寸是否跟随子控件变化
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="comp_uid"> 控件uid </param>
    /// <param name="flag"> 布尔值 </param>
    /// <returns></returns>
    public static extern void set_ui_scrollview_size_change_according_children(Role role,string comp_uid,bool? flag);

    /// <summary>
    /// 设置图片颜色
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="comp_uid"> 控件名 </param>
    /// <param name="r"> R </param>
    /// <param name="g"> G </param>
    /// <param name="b"> B </param>
    /// <param name="a"> A </param>
    /// <returns></returns>
    public static extern void set_ui_image_color(Role role,string comp_uid,double? r,double? g,double? b,double? a);

    /// <summary>
    /// 界面-获取控件的真实长度
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="comp_uid"> 控件名 </param>
    /// <returns></returns>
    public static extern void get_role_ui_comp_real_width(Role role,string comp_uid);

    /// <summary>
    /// 界面-获取控件的真实高度
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="comp_uid"> 控件名 </param>
    /// <returns></returns>
    public static extern void get_role_ui_comp_real_height(Role role,string comp_uid);

    /// <summary>
    /// 界面-获取玩家鼠标真实x坐标
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <returns></returns>
    public static extern void get_role_real_mouse_x(Role role);

    /// <summary>
    /// 界面-获取玩家鼠标真实y坐标
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <returns></returns>
    public static extern void get_role_real_mouse_y(Role role);

    /// <summary>
    /// 设置当前聊天框控件
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="comp_uid"> 聊天框id </param>
    /// <returns></returns>
    public static extern void set_cur_chatbox(Role role,string comp_uid);

    /// <summary>
    /// 界面组件是否存在
    /// </summary>
    /// <param name="ui_comp"> 界面组件名称 </param>
    /// <returns>是否存在</returns>
    public static extern bool? ui_comp_is_exist(string ui_comp);

    /// <summary>
    /// 显示ui组件并播放动画
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="comp_name"> 控件名 </param>
    /// <param name="anim_name"> 动画名 </param>
    /// <returns></returns>
    public static extern void show_ui_comp_animation(Role role,string comp_name,string anim_name);

    /// <summary>
    /// 隐藏ui组件并播放动画
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="comp_name"> 控件名 </param>
    /// <param name="anim_name"> 动画名 </param>
    /// <returns></returns>
    public static extern void hide_ui_comp_animation(Role role,string comp_name,string anim_name);

    /// <summary>
    /// 设置ui组件坐标
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="comp_name"> 控件名 </param>
    /// <param name="x"> x </param>
    /// <param name="y"> y </param>
    /// <returns></returns>
    public static extern void set_ui_comp_pos(Role role,string comp_name,double? x,double? y);

    /// <summary>
    /// 设置ui组件坐标没有转化
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="comp_name"> 控件名 </param>
    /// <param name="x"> x </param>
    /// <param name="y"> y </param>
    /// <returns></returns>
    public static extern void set_ui_comp_pos_no_trans(Role role,string comp_name,double? x,double? y);

    /// <summary>
    /// 设置ui组件缩放
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="comp_name"> 控件名 </param>
    /// <param name="width"> width </param>
    /// <param name="height"> height </param>
    /// <returns></returns>
    public static extern void set_ui_comp_scale(Role role,string comp_name,double? width,double? height);

    /// <summary>
    /// 设置ui组件尺寸
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="comp_name"> 控件名 </param>
    /// <param name="width"> width </param>
    /// <param name="height"> height </param>
    /// <returns></returns>
    public static extern void set_ui_comp_size(Role role,string comp_name,double? width,double? height);

    /// <summary>
    /// 设置ui组件深度
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="comp_name"> 控件名 </param>
    /// <param name="z_order"> z_order </param>
    /// <returns></returns>
    public static extern void set_ui_comp_z_order(Role role,string comp_name,int? z_order);

    /// <summary>
    /// 设置ui组件图片
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="comp_name"> 控件名 </param>
    /// <param name="image_id"> 图片id </param>
    /// <returns></returns>
    public static extern void set_ui_comp_image(Role role,string comp_name,int? image_id);

    /// <summary>
    /// 设置ui列表组件间距
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="comp_name"> 控件名 </param>
    /// <param name="margin"> 间距 </param>
    /// <returns></returns>
    public static extern void set_ui_comp_margin(Role role,string comp_name,int? margin);

    /// <summary>
    /// 设置ui组件图片(图片类型)
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="comp_name"> 控件名 </param>
    /// <param name="image_id"> 图片 </param>
    /// <returns></returns>
    public static extern void set_ui_comp_image_with_icon(Role role,string comp_name,int? image_id);

    /// <summary>
    /// 设置ui组件序列帧
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="comp_name"> 控件名 </param>
    /// <param name="image_id"> 图片 </param>
    /// <returns></returns>
    public static extern void set_ui_comp_sequence(Role role,string comp_name,int? image_id);

    /// <summary>
    /// 播放序列帧
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="comp_name"> 控件名 </param>
    /// <param name="loop"> 图片 </param>
    /// <param name="space"> 循环 </param>
    /// <param name="start_frame"> 间隔 </param>
    /// <param name="end_frame"> 开始帧 </param>
    /// <returns></returns>
    public static extern void play_ui_comp_sequence(Role role,string comp_name,int? loop,bool? space,double? start_frame,int? end_frame);

    /// <summary>
    /// 停止播放序列帧
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="comp_name"> 控件名 </param>
    /// <returns></returns>
    public static extern void stop_ui_comp_sequence(Role role,string comp_name);

    /// <summary>
    /// 设置进度条最大值
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="comp_name"> 控件名 </param>
    /// <param name="max_value"> 最大值 </param>
    /// <returns></returns>
    public static extern void set_progress_bar_max_value(Role role,string comp_name,double? max_value);

    /// <summary>
    /// 设置进度条当前值
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="comp_name"> 控件名 </param>
    /// <param name="current_value"> 当前值 </param>
    /// <param name="time"> 渐变时间 </param>
    /// <returns></returns>
    public static extern void set_progress_bar_current_value(Role role,string comp_name,double? current_value,double? time);

    /// <summary>
    /// 设置ui开启/关闭
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="comp_name"> 控件名 </param>
    /// <param name="current_value"> 是否开启 </param>
    /// <returns></returns>
    public static extern void set_ui_comp_enable(Role role,string comp_name,bool? current_value);

    /// <summary>
    /// 设置ui显示/隐藏
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="visible"> 显/隐 </param>
    /// <param name="comp_name"> 控件名 </param>
    /// <returns></returns>
    public static extern void set_ui_comp_visible(Role role,bool? visible,string comp_name);

    /// <summary>
    /// 设置ui文本颜色
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="comp_name"> 控件名 </param>
    /// <param name="r"> R </param>
    /// <param name="g"> G </param>
    /// <param name="b"> B </param>
    /// <param name="a"> A </param>
    /// <returns></returns>
    public static extern void set_ui_comp_font_color(Role role,string comp_name,double? r,double? g,double? b,double? a);

    /// <summary>
    /// 设置ui文本
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="comp_name"> 控件名 </param>
    /// <param name="content"> 文本 </param>
    /// <returns></returns>
    public static extern void set_ui_comp_text(Role role,string comp_name,string content);

    /// <summary>
    /// 设置ui文本大小
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="comp_name"> 控件名 </param>
    /// <param name="size"> 文本大小 </param>
    /// <returns></returns>
    public static extern void set_ui_comp_font_size(Role role,string comp_name,int? size);

    /// <summary>
    /// 设置输入框获得焦点
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="comp_name"> 控件名 </param>
    /// <returns></returns>
    public static extern void set_input_field_focus(Role role,string comp_name);

    /// <summary>
    /// 设置输入框失去焦点
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="comp_name"> 控件名 </param>
    /// <returns></returns>
    public static extern void set_input_field_not_focus(Role role,string comp_name);

    /// <summary>
    /// 播放UI控件时间轴动画
    /// </summary>
    /// <returns></returns>
    public static extern void play_ui_comp_anim();

    /// <summary>
    /// 停止UI控件时间轴动画
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="anim_id"> UI动画 </param>
    /// <returns></returns>
    public static extern void stop_ui_comp_anim(Role role,int? anim_id);

    /// <summary>
    /// 绑定技能实体到控件
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="ability"> 技能对象 </param>
    /// <param name="comp_name"> 控件名 </param>
    /// <returns></returns>
    public static extern void set_skill_on_ui_comp(Role role,Ability ability,string comp_name);

    /// <summary>
    /// 解绑技能实体到控件
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="ability"> 技能对象 </param>
    /// <param name="comp_name"> 控件名 </param>
    /// <returns></returns>
    public static extern void unbind_skill_on_ui_comp(Role role,Ability ability,string comp_name);

    /// <summary>
    /// 设置控件透明度
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="comp_name"> 控件名 </param>
    /// <param name="opacity"> 透明度 </param>
    /// <returns></returns>
    public static extern void set_ui_comp_opacity(Role role,string comp_name,double? opacity);

    /// <summary>
    /// 绑定对象到BUFF控件
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="unit"> 单位对象 </param>
    /// <param name="comp_name"> 控件名 </param>
    /// <returns></returns>
    public static extern void set_buff_on_ui_comp(Role role,Unit unit,string comp_name);

    /// <summary>
    /// 绑定物品实体到道具栏控件
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="item"> 物品对象 </param>
    /// <param name="comp_name"> 控件名 </param>
    /// <returns></returns>
    public static extern void set_item_on_ui_comp(Role role,Item item,string comp_name);

    /// <summary>
    /// 设置道具栏控件类型和槽位号
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="comp_name"> 控件名 </param>
    /// <param name="slot_type"> 类型 </param>
    /// <param name="slot_index"> 槽位id </param>
    /// <returns></returns>
    public static extern void set_ui_comp_slot(Role role,string comp_name,int? slot_type,int? slot_index);

    /// <summary>
    /// 设置道具栏控件类型和槽位号
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="comp_name"> 控件名 </param>
    /// <param name="unit"> 单位 </param>
    /// <param name="slot_type"> 类型 </param>
    /// <param name="slot_index"> 槽位id </param>
    /// <returns></returns>
    public static extern void set_ui_comp_unit_slot(Role role,string comp_name,Unit unit,int? slot_type,int? slot_index);

    /// <summary>
    /// 设置预设主界面UI显隐
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="visible"> 显隐 </param>
    /// <returns></returns>
    public static extern void set_prefab_ui_visible(Role role,bool? visible);

    /// <summary>
    /// 播放/停止技能按钮激活动效
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="comp_name"> 控件名 </param>
    /// <param name="play"> 播放/停止 </param>
    /// <returns></returns>
    public static extern void set_skill_btn_action_effect(Role role,string comp_name,bool? play);

    /// <summary>
    /// 设置按钮快捷键
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="comp_name"> 控件名 </param>
    /// <param name="btn"> 按键ID </param>
    /// <returns></returns>
    public static extern void set_btn_short_cut(Role role,string comp_name,int? btn);

    /// <summary>
    /// 设置按钮辅助键
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="comp_name"> 控件名 </param>
    /// <param name="btn"> 按键ID </param>
    /// <returns></returns>
    public static extern void set_btn_func_short_cut(Role role,string comp_name,int? btn);

    /// <summary>
    /// 设置技能按钮智能施法快捷键
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="comp_name"> 控件名 </param>
    /// <param name="btn"> 按键ID </param>
    /// <returns></returns>
    public static extern void set_skill_btn_smart_cast_key(Role role,string comp_name,int? btn);

    /// <summary>
    /// 设置技能按钮智能施法辅助键
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="comp_name"> 控件名 </param>
    /// <param name="btn"> 按键ID </param>
    /// <returns></returns>
    public static extern void set_skill_btn_func_smart_cast_key(Role role,string comp_name,int? btn);

    /// <summary>
    /// 设置UI模型控件ID
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="comp_name"> 控件名 </param>
    /// <param name="model_id"> 模型id </param>
    /// <returns></returns>
    public static extern void set_ui_model_id(Role role,string comp_name,int? model_id);

    /// <summary>
    /// 设置玩家的商店控件的目标商店单位
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="comp_name"> 控件名 </param>
    /// <param name="shop_unit"> 商店单位 </param>
    /// <param name="index"> 页签索引 </param>
    /// <returns></returns>
    public static extern void set_shop_comp_bind_shop_unit(Role role,string comp_name,Unit shop_unit,Unit index);

    /// <summary>
    /// 设置玩家的合成控件的参数并刷新
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="comp_name"> 控件名 </param>
    /// <param name="item_id"> 合成目标物品id </param>
    /// <param name="shop_unit"> 商店单位 </param>
    /// <param name="buy_unit"> 购买单位 </param>
    /// <returns></returns>
    public static extern void set_compose_comp_refresh(Role role,string comp_name,int? item_id,Unit shop_unit,Unit buy_unit);

    /// <summary>
    /// 设置ui模型控件背景色
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="comp_name"> 控件名 </param>
    /// <param name="r"> R </param>
    /// <param name="g"> G </param>
    /// <param name="b"> B </param>
    /// <param name="a"> A </param>
    /// <returns></returns>
    public static extern void set_show_room_background_color(Role role,string comp_name,double? r,double? g,double? b,double? a);

    /// <summary>
    /// 设置Showroom的fov
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="comp_name"> 控件名 </param>
    /// <param name="fov"> fov </param>
    /// <returns></returns>
    public static extern void change_showroom_fov(Role role,string comp_name,double? fov);

    /// <summary>
    /// 设置Showroom的camera pos
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="comp_name"> 控件名 </param>
    /// <param name="x"> x </param>
    /// <param name="y"> y </param>
    /// <param name="z"> z </param>
    /// <returns></returns>
    public static extern void change_showroom_cposition(Role role,string comp_name,double? x,double? y,double? z);

    /// <summary>
    /// 设置Showroom的camera rotation
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="comp_name"> 控件名 </param>
    /// <param name="pitch"> pitch </param>
    /// <param name="roll"> roll </param>
    /// <param name="yaw"> yaw </param>
    /// <returns></returns>
    public static extern void change_showroom_crotation(Role role,string comp_name,double? pitch,double? roll,double? yaw);

    /// <summary>
    /// 设置grid_view的子item数量
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="comp_name"> 控件名 </param>
    /// <param name="count"> 子节点数量 </param>
    /// <returns></returns>
    public static extern void set_grid_view_item_count(Role role,string comp_name,int? count);

    /// <summary>
    /// 获得gridview的子控件
    /// </summary>
    /// <param name="comp_name"> 控件名 </param>
    /// <param name="index"> 索引 </param>
    /// <returns>子控件</returns>
    public static extern string get_grid_view_item(string comp_name,int? index);

    /// <summary>
    /// 设置控件旋转
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="comp_name"> 控件名 </param>
    /// <param name="rotation"> 角度 </param>
    /// <returns></returns>
    public static extern void set_ui_comp_rotation(Role role,string comp_name,double? rotation);

    /// <summary>
    /// 设置控件是否拦截
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="comp_name"> 控件名 </param>
    /// <param name="swallow"> 是否拦截点击 </param>
    /// <returns></returns>
    public static extern void set_ui_comp_swallow(Role role,string comp_name,bool? swallow);

    /// <summary>
    /// 设置控件是否可拖动
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="comp_name"> 控件名 </param>
    /// <param name="can_drag"> 是否可拖动 </param>
    /// <returns></returns>
    public static extern void set_ui_comp_drag(Role role,string comp_name,bool? can_drag);

    /// <summary>
    /// 设置控件世界坐标
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="comp_name"> 控件名 </param>
    /// <param name="x"> x </param>
    /// <param name="y"> y </param>
    /// <returns></returns>
    public static extern void set_ui_comp_world_pos(Role role,string comp_name,double? x,double? y);

    /// <summary>
    /// 设置控件世界旋转
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="comp_name"> 控件名 </param>
    /// <param name="rotation"> rotation </param>
    /// <returns></returns>
    public static extern void set_ui_comp_world_rotation(Role role,string comp_name,double? rotation);

    /// <summary>
    /// 设置控件世界缩放
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="comp_name"> 控件名 </param>
    /// <param name="scale_x"> scale_x </param>
    /// <param name="scale_y"> scale_y </param>
    /// <returns></returns>
    public static extern void set_ui_comp_world_scale(Role role,string comp_name,double? scale_x,double? scale_y);

    /// <summary>
    /// 获取当前玩家控件相对位置x
    /// </summary>
    /// <param name="comp_name"> 控件名 </param>
    /// <returns>x</returns>
    public static extern Fix32 get_ui_comp_pos_x(string comp_name);

    /// <summary>
    /// 获取当前玩家控件相对位置y
    /// </summary>
    /// <param name="comp_name"> 控件名 </param>
    /// <returns>y</returns>
    public static extern Fix32 get_ui_comp_pos_y(string comp_name);

    /// <summary>
    /// 获取当前玩家控件绝对位置x
    /// </summary>
    /// <param name="comp_name"> 控件名 </param>
    /// <returns>x</returns>
    public static extern Fix32 get_ui_comp_world_pos_x(string comp_name);

    /// <summary>
    /// 获取当前玩家控件绝对位置y
    /// </summary>
    /// <param name="comp_name"> 控件名 </param>
    /// <returns>y</returns>
    public static extern Fix32 get_ui_comp_world_pos_y(string comp_name);

    /// <summary>
    /// 获取当前玩家控件相对旋转
    /// </summary>
    /// <param name="comp_name"> 控件名 </param>
    /// <returns>rotation</returns>
    public static extern Fix32 get_ui_comp_rotation(string comp_name);

    /// <summary>
    /// 获取当前玩家控件绝对旋转
    /// </summary>
    /// <param name="comp_name"> 控件名 </param>
    /// <returns>rotation</returns>
    public static extern Fix32 get_ui_comp_world_rotation(string comp_name);

    /// <summary>
    /// 获取当前玩家控件相对缩放x
    /// </summary>
    /// <param name="comp_name"> 控件名 </param>
    /// <returns>scale_x</returns>
    public static extern Fix32 get_ui_comp_scale_x(string comp_name);

    /// <summary>
    /// 获取当前玩家控件相对缩放y
    /// </summary>
    /// <param name="comp_name"> 控件名 </param>
    /// <returns>scale_y</returns>
    public static extern Fix32 get_ui_comp_scale_y(string comp_name);

    /// <summary>
    /// 获取当前玩家控件绝对缩放x
    /// </summary>
    /// <param name="comp_name"> 控件名 </param>
    /// <returns>scale_x</returns>
    public static extern Fix32 get_ui_comp_world_scale_x(string comp_name);

    /// <summary>
    /// 获取当前玩家控件绝对缩放y
    /// </summary>
    /// <param name="comp_name"> 控件名 </param>
    /// <returns>scale_y</returns>
    public static extern Fix32 get_ui_comp_world_scale_y(string comp_name);

    /// <summary>
    /// 创建ui控件
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="comp_name"> 父节点 </param>
    /// <param name="comp_type"> 控件类型 </param>
    /// <returns>控件uid</returns>
    public static extern string create_ui_comp(Role role,string comp_name,int? comp_type);

    /// <summary>
    /// 查找指定名字的UI控件
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="comp_name"> 节点名字 </param>
    /// <returns>控件uid</returns>
    public static extern string get_ui_comp_id_by_name(Role role,string comp_name);

    /// <summary>
    /// 创建并绑定ui控件事件
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="comp_uid"> 控件uid </param>
    /// <param name="event_type"> 控件事件类型 </param>
    /// <returns>事件名</returns>
    public static extern string create_ui_comp_event(Role role,string comp_uid,int? event_type);

    /// <summary>
    /// 创建并绑定ui控件事件(指定事件名)
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="comp_uid"> 控件uid </param>
    /// <param name="event_type"> 控件事件类型 </param>
    /// <param name="name"> 自定义事件名 </param>
    /// <returns>事件名</returns>
    public static extern string create_ui_comp_event_ex(Role role,string comp_uid,int? event_type,string name);

    /// <summary>
    /// 新版创建并绑定ui控件事件(指定事件名),不再传入玩家，同时支持普通控件和动态创建控件
    /// </summary>
    /// <param name="comp_uid"> 控件uid </param>
    /// <param name="event_type"> 控件事件类型 </param>
    /// <param name="name"> 自定义事件名 </param>
    /// <returns>事件名</returns>
    public static extern string create_ui_comp_event_ex_ex(string comp_uid,int? event_type,string name);

    /// <summary>
    /// 创建并绑定ui控件事件(指定事件名)
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="comp_uid"> 控件uid </param>
    /// <param name="event_type"> 控件事件类型 </param>
    /// <param name="name"> 自定义事件名 </param>
    /// <returns>事件名</returns>
    public static extern string create_ui_comp_event_ex_no_check(Role role,string comp_uid,int? event_type,string name);

    /// <summary>
    /// 获取场景ui中的控件
    /// </summary>
    /// <param name="scene_node_entity"> 场景点 </param>
    /// <param name="comp_path"> 控件路径 </param>
    /// <returns>控件名</returns>
    public static extern string get_ui_comp_in_scene_ui(SceneNode scene_node_entity,string comp_path);

    /// <summary>
    /// 获取场景ui中的控件
    /// </summary>
    /// <param name="scene_node_entity"> 场景点 </param>
    /// <param name="comp_uid"> 模板控件uid </param>
    /// <returns>uid</returns>
    public static extern string get_ui_comp_in_scene_ui_ex(SceneNode scene_node_entity,string comp_uid);

    /// <summary>
    /// 通过控件+路径获得ui控件
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="comp_name"> 父节点 </param>
    /// <param name="path"> 路径 </param>
    /// <returns>控件uid</returns>
    public static extern string get_comp_by_path(Role role,string comp_name,string path);

    /// <summary>
    /// 通过绝对路径获得ui控件
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="path"> 路径 </param>
    /// <returns>控件uid</returns>
    public static extern string get_comp_by_absolute_path(Role role,string path);

    /// <summary>
    /// 播放ui动效
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="uid"> 控件uid </param>
    /// <param name="fx_id"> 控件动效工程id </param>
    /// <param name="ani_name"> 动效名 </param>
    /// <param name="loop"> 循环 </param>
    /// <returns></returns>
    public static extern void play_ui_comp_fx(Role role,string uid,int? fx_id,string ani_name,bool? loop);

    /// <summary>
    /// ui模型控件播放动画
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="uid"> 控件uid </param>
    /// <param name="anim"> 动画名 </param>
    /// <param name="play_speed"> 动画速率 </param>
    /// <param name="begin_t"> 开始时间 </param>
    /// <param name="end_t"> 结束时间 </param>
    /// <param name="loop"> 是否循环 </param>
    /// <param name="return_idle"> 是否回到默认动画 </param>
    /// <returns></returns>
    public static extern void play_ui_model_anim(Role role,string uid,string anim,double? play_speed,double? begin_t,double? end_t,bool? loop,bool? return_idle);

    /// <summary>
    /// 设置ui组件悬浮态图片
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="comp_name"> 控件名 </param>
    /// <param name="image_id"> 图片id </param>
    /// <returns></returns>
    public static extern void set_ui_comp_suspend_image(Role role,string comp_name,int? image_id);

    /// <summary>
    /// 设置ui组件按下态图片
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="comp_name"> 控件名 </param>
    /// <param name="image_id"> 图片id </param>
    /// <returns></returns>
    public static extern void set_ui_comp_press_image(Role role,string comp_name,int? image_id);

    /// <summary>
    /// 设置ui组件禁用态图片
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="comp_name"> 控件名 </param>
    /// <param name="image_id"> 图片id </param>
    /// <returns></returns>
    public static extern void set_ui_comp_disabled_image(Role role,string comp_name,int? image_id);

    /// <summary>
    /// 清空下拉框
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="comp_id"> 下拉框 </param>
    /// <returns></returns>
    public static extern void clear_combo_box(Role role,string comp_id);

    /// <summary>
    /// 添加下拉框选项
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="comp_id"> 下拉框 </param>
    /// <param name="text"> 名称 </param>
    /// <param name="value"> 值 </param>
    /// <returns></returns>
    public static extern void add_combo_item(Role role,string comp_id,string text,string value);

    /// <summary>
    /// 设置下拉框默认文本
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="comp_id"> 下拉框 </param>
    /// <param name="text"> 默认文本 </param>
    /// <returns></returns>
    public static extern void set_combo_text(Role role,string comp_id,string text);

    /// <summary>
    /// 获取下拉框当前值
    /// </summary>
    /// <param name="comp_id"> 下拉框 </param>
    /// <returns>value</returns>
    public static extern string get_combo_box_cur_value(string comp_id);

    /// <summary>
    /// 获取滑动条当前值
    /// </summary>
    /// <param name="comp_id"> 滑动条 </param>
    /// <returns>value</returns>
    public static extern double? get_slider_cur_percent(string comp_id);

    /// <summary>
    /// 设置滑动条当前值
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="comp_id"> 滑动条 </param>
    /// <param name="value"> value </param>
    /// <returns></returns>
    public static extern void set_slider_cur_percent(Role role,string comp_id,double? value);

    /// <summary>
    /// 获得控件宽度
    /// </summary>
    /// <param name="comp_id"> UI控件 </param>
    /// <returns>width</returns>
    public static extern int? get_ui_comp_width(string comp_id);

    /// <summary>
    /// 获得控件高度
    /// </summary>
    /// <param name="comp_id"> UI控件 </param>
    /// <returns>height</returns>
    public static extern int? get_ui_comp_height(string comp_id);

    /// <summary>
    /// 设置ui按钮是否开启多态
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="comp_name"> 控件名 </param>
    /// <param name="is_open"> 是否开启 </param>
    /// <returns></returns>
    public static extern void set_ui_comp_bar_status(Role role,string comp_name,bool? is_open);

    /// <summary>
    /// 设置UI控件模型焦点
    /// </summary>
    /// <param name="player"> 玩家 </param>
    /// <param name="comp_name"> UI控件 </param>
    /// <param name="x"> x </param>
    /// <param name="y"> y </param>
    /// <param name="z"> z </param>
    /// <returns></returns>
    public static extern void set_ui_model_focus_pos(Role player,string comp_name,double? x,double? y,double? z);

    /// <summary>
    /// 获取ui控件的子控件
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="uid"> 控件uid </param>
    /// <returns>子控件uid</returns>
    public static extern dynamic get_ui_comp_children(Role role,string uid);

    /// <summary>
    /// 获取ui控件的子控件
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="uid"> 控件uid </param>
    /// <returns>子控件uid</returns>
    public static extern dynamic get_ui_comp_children_no_check(Role role,string uid);

    /// <summary>
    /// 获取ui控件的名称
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="comp_name"> 控件uid </param>
    /// <returns>控件名</returns>
    public static extern string get_ui_comp_name(Role role,string comp_name);

    /// <summary>
    /// 解绑绑定控件
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="comp_name"> 控件uid </param>
    /// <returns></returns>
    public static extern void unbind_ui_comp(Role role,string comp_name);

    /// <summary>
    /// 绑定单位属性或者全局变量到玩家界面控件的属性
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="ui_comp"> 控件uid </param>
    /// <param name="ui_comp_attr"> 控件属性字段 </param>
    /// <param name="attr_or_var"> 属性名 </param>
    /// <param name="precision"> 保留小数精度 </param>
    /// <returns></returns>
    public static extern void set_ui_comp_bind_attr(Role role,string ui_comp,string ui_comp_attr,string attr_or_var,int? precision);

    /// <summary>
    /// 绑定单位属性或者全局变量到玩家界面控件的属性
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="ui_comp"> 控件uid </param>
    /// <param name="ui_comp_attr"> 控件属性字段 </param>
    /// <param name="attr_or_var"> 属性名 </param>
    /// <param name="precision"> 保留小数精度 </param>
    /// <returns></returns>
    public static extern void set_ui_comp_bind_var(Role role,string ui_comp,string ui_comp_attr,string attr_or_var,int? precision);

    /// <summary>
    /// 解绑界面控件属性绑定
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="ui_comp"> 控件uid </param>
    /// <param name="ui_comp_attr"> 控件属性字段 </param>
    /// <returns></returns>
    public static extern void ui_comp_unbind(Role role,string ui_comp,string ui_comp_attr);

    /// <summary>
    /// 界面控件属性绑定指定单位
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="ui_comp"> 控件uid </param>
    /// <param name="unit"> 单位 </param>
    /// <returns></returns>
    public static extern void ui_comp_bind_unit(Role role,string ui_comp,Unit unit);

    /// <summary>
    /// 界面控件属性动态绑定主控单位
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="ui_comp"> 控件uid </param>
    /// <returns></returns>
    public static extern void ui_comp_bind_ctrl_unit(Role role,string ui_comp);

    /// <summary>
    /// 获取界面控件的父控件
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="comp_uid"> 界面控件 </param>
    /// <returns>父控件</returns>
    public static extern string get_ui_comp_parent(Role role,string comp_uid);

    /// <summary>
    /// 绑定玩家属性到玩家界面控件的属性
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="ui_comp"> 控件uid </param>
    /// <param name="ui_comp_attr"> 控件属性字段 </param>
    /// <param name="bind_role"> 玩家 </param>
    /// <param name="attr_or_var"> 玩家属性key </param>
    /// <param name="precision"> 保留小数精度 </param>
    /// <returns></returns>
    public static extern void set_ui_comp_bind_player_prop(Role role,string ui_comp,string ui_comp_attr,Role bind_role,string attr_or_var,int? precision);

    /// <summary>
    /// 设置控件文本对齐方式
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="comp_name"> 控件名 </param>
    /// <param name="align_type"> 对齐方式 </param>
    /// <returns></returns>
    public static extern void set_ui_comp_align(Role role,string comp_name,int? align_type);

    /// <summary>
    /// 注册界面控件播放指定动效回调
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="uid"> 控件uid </param>
    /// <param name="fx_id"> 控件动效工程id </param>
    /// <param name="ani_name"> 动效名 </param>
    /// <param name="frame"> 播放动效回调帧数 </param>
    /// <param name="handler"> 回调句柄 </param>
    /// <returns></returns>
    public static extern void register_ui_comp_fx_cb(Role role,string uid,int? fx_id,string ani_name,int? frame,string handler);

    /// <summary>
    /// 创建界面模块
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="prefab_id"> 预设uid </param>
    /// <param name="comp_name"> 父控件 </param>
    /// <returns>控件uid</returns>
    public static extern string create_ui_prefab_instance(Role role,string prefab_id,string comp_name);

    /// <summary>
    /// 删除界面控件
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="comp_name"> 控件uid </param>
    /// <returns></returns>
    public static extern void del_ui_comp(Role role,string comp_name);

    /// <summary>
    /// 开启字体大小跟随内容自适应
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="comp_name"> 控件uid </param>
    /// <param name="is_open"> 开启/关闭 </param>
    /// <returns></returns>
    public static extern void set_ui_comp_text_adaptive(Role role,string comp_name,bool? is_open);

    /// <summary>
    /// 绑定技能cd到玩家界面控件的属性
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="ui_comp"> 控件uid </param>
    /// <param name="ui_comp_attr"> 控件属性字段 </param>
    /// <param name="ability"> 技能实体对象 </param>
    /// <returns></returns>
    public static extern void set_ui_comp_bind_ability_cd(Role role,string ui_comp,string ui_comp_attr,Ability ability);

    /// <summary>
    /// 绑定魔法效果cd到玩家界面控件的属性
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="ui_comp"> 控件uid </param>
    /// <param name="ui_comp_attr"> 控件属性字段 </param>
    /// <param name="modifier"> 技能实体对象 </param>
    /// <returns></returns>
    public static extern void set_ui_comp_bind_modifier_cd(Role role,string ui_comp,string ui_comp_attr,ModifierEntity modifier);

    /// <summary>
    /// 开启/禁用发送聊天功能
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="ui_comp"> 控件uid </param>
    /// <param name="enabled"> 开关 </param>
    /// <returns></returns>
    public static extern void set_chat_send_enabled(Role role,string ui_comp,bool? enabled);

    /// <summary>
    /// 显示/不显示玩家聊天
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="ui_comp"> 控件uid </param>
    /// <param name="chat_role"> 玩家 </param>
    /// <param name="is_show"> 开关 </param>
    /// <returns></returns>
    public static extern void set_player_chat_show(Role role,string ui_comp,Role chat_role,bool? is_show);

    /// <summary>
    /// 清理聊天
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="ui_comp"> 控件uid </param>
    /// <returns></returns>
    public static extern void clear_player_chat_panel(Role role,string ui_comp);

    /// <summary>
    /// 发送聊天给玩家
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="ui_comp"> 控件uid </param>
    /// <param name="target_role"> 玩家 </param>
    /// <param name="context"> 内容 </param>
    /// <returns></returns>
    public static extern void send_chat_to_role(Role role,string ui_comp,Role target_role,string context);

    /// <summary>
    /// 删除界面预制实例
    /// </summary>
    /// <param name="ui_prefab_ins"> 控件名 </param>
    /// <returns></returns>
    public static extern void del_ui_prefab(string ui_prefab_ins);

    /// <summary>
    /// 获得玩家控件显隐性
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="comp_name"> 控件uid </param>
    /// <returns>是否显示</returns>
    public static extern bool? get_ui_comp_visible(Role role,string comp_name);

    /// <summary>
    /// 设置玩家的声音主单位
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="unit"> 单位 </param>
    /// <returns></returns>
    public static extern void set_role_micro_unit(Role role,Unit unit);

    /// <summary>
    /// 关闭【玩家】的附近语音聊天
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <returns></returns>
    public static extern void close_role_micro_unit(Role role);

    /// <summary>
    /// 设置【玩家】的同阵营语音聊天收听开关为【布尔】
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="is_open"> 开关 </param>
    /// <returns></returns>
    public static extern void set_role_camp_sound_switch(Role role,bool? is_open);

    /// <summary>
    /// 设置【玩家】的同阵营语音聊天发言开关为【布尔】
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="is_open"> 开关 </param>
    /// <returns></returns>
    public static extern void set_role_camp_micro_switch(Role role,bool? is_open);

    /// <summary>
    /// 设置【玩家】的附近语音聊天发言开关为【布尔】
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="is_open"> 开关 </param>
    /// <returns></returns>
    public static extern void set_nearby_micro_switch(Role role,bool? is_open);

    /// <summary>
    /// 设置【玩家】的附近语音聊天收听开关为【布尔】
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="is_open"> 开关 </param>
    /// <returns></returns>
    public static extern void set_nearby_sound_switch(Role role,bool? is_open);

    /// <summary>
    /// 设置【玩家】的所有人语音聊天收听开关为【布尔】
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="is_open"> 开关 </param>
    /// <returns></returns>
    public static extern void set_role_all_sound_switch(Role role,bool? is_open);

    /// <summary>
    /// 设置【玩家】的所有人语音聊天发言开关为【布尔】
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="is_open"> 开关 </param>
    /// <returns></returns>
    public static extern void set_role_all_micro_switch(Role role,bool? is_open);

    /// <summary>
    /// 设置聊天控件的频道为同盟或者所有人
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="comp_name"> 控件uid </param>
    /// <param name="is_ally"> 是否为同盟 </param>
    /// <returns></returns>
    public static extern void set_ui_comp_chat_channel(Role role,string comp_name,bool? is_ally);

    /// <summary>
    /// 设置界面控件锚点
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="comp_name"> 控件uid </param>
    /// <param name="x"> x </param>
    /// <param name="y"> y </param>
    /// <returns></returns>
    public static extern void set_ui_comp_anchor(Role role,string comp_name,double? x,double? y);

    /// <summary>
    /// 设置界面控件九宫开关
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="comp_name"> 控件uid </param>
    /// <param name="switch"> 开关 </param>
    /// <returns></returns>
    public static extern void set_ui_comp_scale_9_enable(Role role,string comp_name,bool? @switch);

    /// <summary>
    /// 设置界面控件九宫值
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="comp_name"> 控件uid </param>
    /// <param name="x_left"> x </param>
    /// <param name="x_right"> y </param>
    /// <param name="y_top"> width </param>
    /// <param name="y_bottom"> height </param>
    /// <returns></returns>
    public static extern void set_ui_comp_cap_insets(Role role,string comp_name,int? x_left,int? x_right,int? y_top,int? y_bottom);

    /// <summary>
    /// 设置ui控件绑定公式
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="comp_name"> 控件名 </param>
    /// <param name="format_str"> 公式 </param>
    /// <returns></returns>
    public static extern void set_ui_comp_bind_format(Role role,string comp_name,string format_str);

    /// <summary>
    /// 设置列表滚动到百分比位置
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="comp_name"> 控件uid </param>
    /// <param name="percent"> 百分比 </param>
    /// <returns></returns>
    public static extern void set_list_view_percent(Role role,string comp_name,double? percent);

    /// <summary>
    /// 获得玩家的界面模块实例
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="uid"> 界面模块实例uid </param>
    /// <returns>界面模块实例</returns>
    public static extern string get_ui_prefab_ins(Role role,string uid);

    /// <summary>
    /// 获得界面控件所属的界面模块实例(如果是的话)
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="comp_name"> 控件uid </param>
    /// <returns>界面预制体实例</returns>
    public static extern string get_ui_comp_prefab(Role role,string comp_name);

    /// <summary>
    /// 设置字体大小跟随内容自适应最小值(需要重新设置文本生效)
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="min_value"> 最小值 </param>
    /// <returns></returns>
    public static extern void set_ui_comp_text_adaptive_min_size(Role role,int? min_value);

    /// <summary>
    /// 通过预制实例+路径获得ui控件
    /// </summary>
    /// <param name="prefab_ins"> 预制 </param>
    /// <param name="path"> 路径 </param>
    /// <returns>控件uid</returns>
    public static extern string get_ui_prefab_child_by_path(string prefab_ins,string path);

    /// <summary>
    /// 获得玩家输入框文本内容
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="comp_name"> 控件uid </param>
    /// <returns>文本内容</returns>
    public static extern string get_input_field_content(Role role,string comp_name);

    /// <summary>
    /// 设置动画移动
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="comp_name"> 控件uid </param>
    /// <param name="start_x"> 开始x </param>
    /// <param name="start_y"> 开始y </param>
    /// <param name="end_x"> 结束x </param>
    /// <param name="end_y"> 结束y </param>
    /// <param name="duration"> 持续时间 </param>
    /// <param name="ease_type"> 曲线类型 </param>
    /// <returns></returns>
    public static extern void set_ui_comp_anim_pos(Role role,string comp_name,double? start_x,double? start_y,double? end_x,double? end_y,double? duration,int? ease_type);

    /// <summary>
    /// 设置动画透明度
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="comp_name"> 控件uid </param>
    /// <param name="start_alpha"> 开始alpha </param>
    /// <param name="end_alpha"> 结束alpha </param>
    /// <param name="duration"> 持续时间 </param>
    /// <param name="ease_type"> 曲线类型 </param>
    /// <returns></returns>
    public static extern void set_ui_comp_anim_opacity(Role role,string comp_name,double? start_alpha,double? end_alpha,double? duration,int? ease_type);

    /// <summary>
    /// 设置动画缩放
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="comp_name"> 控件uid </param>
    /// <param name="start_x"> 开始x </param>
    /// <param name="start_y"> 开始y </param>
    /// <param name="end_x"> 结束x </param>
    /// <param name="end_y"> 结束y </param>
    /// <param name="duration"> 持续时间 </param>
    /// <param name="ease_type"> 曲线类型 </param>
    /// <returns></returns>
    public static extern void set_ui_comp_anim_scale(Role role,string comp_name,double? start_x,double? start_y,double? end_x,double? end_y,double? duration,int? ease_type);

    /// <summary>
    /// 设置动画旋转
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="comp_name"> 控件uid </param>
    /// <param name="start_rotation"> 开始旋转 </param>
    /// <param name="end_rotation"> 结束旋转 </param>
    /// <param name="duration"> 持续时间 </param>
    /// <param name="ease_type"> 曲线类型 </param>
    /// <returns></returns>
    public static extern void set_ui_comp_anim_rotate(Role role,string comp_name,double? start_rotation,double? end_rotation,double? duration,int? ease_type);

    /// <summary>
    /// 创建新单位物编
    /// </summary>
    /// <param name="old_entity_no"> 单位物编 </param>
    /// <returns>单位物编key</returns>
    public static extern int? create_unit_editor_data(int? old_entity_no);

    /// <summary>
    /// 设置相机透视射线的焦点单位
    /// </summary>
    /// <param name="role"> 所属玩家 </param>
    /// <param name="unit"> 单位 </param>
    /// <returns></returns>
    public static extern void set_camera_perspective_ray_unit(Role role,Unit unit);

    /// <summary>
    /// create_spine
    /// </summary>
    /// <param name="ientity"> ientity </param>
    /// <param name="spine"> spine </param>
    /// <param name="vertical"> vertical </param>
    /// <param name="rate"> rate </param>
    /// <returns></returns>
    public static extern void create_spine(Unit ientity,string spine,bool? vertical,double? rate);

    /// <summary>
    /// 单位属性m转cm
    /// </summary>
    /// <param name="attr"> 属性名 </param>
    /// <param name="value"> 属性值 </param>
    /// <returns>属性值</returns>
    public static extern Fix32 convert_unit_attr_m2cm(string attr,Fix32 value);

    /// <summary>
    /// 创建新技能物编
    /// </summary>
    /// <param name="old_entity_no"> 技能物编 </param>
    /// <returns>技能物编</returns>
    public static extern int? create_ability_editor_data(int? old_entity_no);

    /// <summary>
    /// 创建新投射物物编
    /// </summary>
    /// <param name="old_entity_no"> 投射物物编 </param>
    /// <returns>投射物物编</returns>
    public static extern int? create_projectile_editor_data(int? old_entity_no);

    /// <summary>
    /// 创建新可破坏物物编
    /// </summary>
    /// <param name="old_entity_no"> 可破坏物物编 </param>
    /// <returns>可破坏物物编</returns>
    public static extern int? create_destructible_editor_data(int? old_entity_no);

    /// <summary>
    /// 获取指定对象类型的物编数据
    /// </summary>
    /// <param name="data_type"> 对象类型 </param>
    /// <param name="key"> 物编key </param>
    /// <returns>物编数据</returns>
    public static extern dynamic api_get_editor_type_data(string data_type,int? key);

    /// <summary>
    /// 设置指定对象类型的物编数据
    /// </summary>
    /// <param name="data_type"> 对象类型 </param>
    /// <param name="key"> 物编key </param>
    /// <param name="data"> 物编数据 </param>
    /// <returns></returns>
    public static extern void api_set_editor_type_data(string data_type,int? key,dynamic data);

    /// <summary>
    /// 获取COLLIDER所属的刚体
    /// </summary>
    /// <param name="collider"> Collider </param>
    /// <returns>Body</returns>
    public static extern dynamic api_get_collider_body(dynamic collider);

    /// <summary>
    /// 设置碰撞体的布尔类型属性
    /// </summary>
    /// <param name="collider"> 刚体 </param>
    /// <param name="attr_name"> 布尔类型属性 </param>
    /// <param name="value"> 值 </param>
    /// <returns></returns>
    public static extern void api_set_collider_bool_attr(dynamic collider,string attr_name,Fix32 value);

    /// <summary>
    /// 获取碰撞体的布尔类型属性
    /// </summary>
    /// <param name="collider"> 刚体 </param>
    /// <param name="attr_name"> 布尔类型属性 </param>
    /// <returns></returns>
    public static extern void api_get_collider_bool_attr(dynamic collider,string attr_name);

    /// <summary>
    /// 设置碰撞体的实数类型属性
    /// </summary>
    /// <param name="collider"> 刚体 </param>
    /// <param name="attr_name"> 实数类型属性 </param>
    /// <param name="value"> 值 </param>
    /// <returns></returns>
    public static extern void api_set_collider_float_attr(dynamic collider,string attr_name,bool? value);

    /// <summary>
    /// 碰撞器的自身碰撞类别是否有指定类型
    /// </summary>
    /// <param name="collider"> 碰撞器 </param>
    /// <param name="mask"> mask </param>
    /// <returns>布尔值</returns>
    public static extern bool? api_is_collider_collision_category(dynamic collider,Fix32 mask);

    /// <summary>
    /// 碰撞器的目标碰撞类别是否有指定类型
    /// </summary>
    /// <param name="collider"> 碰撞器 </param>
    /// <param name="mask"> mask </param>
    /// <returns>布尔值</returns>
    public static extern bool? api_is_collider_collide_with_mask(dynamic collider,Fix32 mask);

    /// <summary>
    /// 碰撞器的自身碰撞类别是否有玩家
    /// </summary>
    /// <param name="collider"> 碰撞器 </param>
    /// <returns>布尔值</returns>
    public static extern bool? api_is_collider_collision_category_player(dynamic collider);

    /// <summary>
    /// 碰撞器的自身碰撞类别是否有地面
    /// </summary>
    /// <param name="collider"> 碰撞器 </param>
    /// <returns>布尔值</returns>
    public static extern bool? api_is_collider_collision_category_floor(dynamic collider);

    /// <summary>
    /// 获得碰撞器的自身碰撞类别
    /// </summary>
    /// <param name="collider"> 碰撞器 </param>
    /// <returns>mask</returns>
    public static extern int? api_get_collider_collision_category(dynamic collider);

    /// <summary>
    /// 获得碰撞器的目标碰撞类别
    /// </summary>
    /// <param name="collider"> 碰撞器 </param>
    /// <returns>mask</returns>
    public static extern int? api_get_collider_collide_with_mask(dynamic collider);

    /// <summary>
    /// 设置碰撞器的自身碰撞类别
    /// </summary>
    /// <param name="collider"> 碰撞器 </param>
    /// <param name="mask"> mask </param>
    /// <returns></returns>
    public static extern void api_set_collider_collision_category(dynamic collider,int? mask);

    /// <summary>
    /// 获得碰撞器的目标碰撞类别
    /// </summary>
    /// <param name="collider"> 碰撞器 </param>
    /// <param name="mask"> mask </param>
    /// <returns></returns>
    public static extern void api_set_collider_collide_with_mask(dynamic collider,int? mask);

    /// <summary>
    /// 根据jid获取joint
    /// </summary>
    /// <param name="jid"> joint ID </param>
    /// <returns>Joint</returns>
    public static extern dynamic api_get_joint_by_bid(int? jid);

    /// <summary>
    /// 创建固定关节
    /// </summary>
    /// <param name="pos"> 创建位置 </param>
    /// <param name="body_1"> 刚体 </param>
    /// <param name="body_2"> 刚体 </param>
    /// <param name="enable_collision"> 检测碰撞 </param>
    /// <returns>Body</returns>
    public static extern dynamic api_create_fixed_joint(Point pos,dynamic body_1,dynamic body_2,bool? enable_collision);

    /// <summary>
    /// 销毁关节
    /// </summary>
    /// <param name="joint"> 关节 </param>
    /// <returns></returns>
    public static extern void api_destroy_joint(dynamic joint);

    /// <summary>
    /// 根据id获取物理组件
    /// </summary>
    /// <param name="comp_id"> joint ID </param>
    /// <returns>PhysicsObject</returns>
    public static extern dynamic api_get_physics_object_by_id(int? comp_id);

    /// <summary>
    /// 根据名称获取逻辑物理组件中的rigidbody
    /// </summary>
    /// <param name="entity"> 物理组件 </param>
    /// <param name="name"> 名称 </param>
    /// <returns>RigidBody</returns>
    public static extern dynamic api_get_rigid_body_in_physics_entity(dynamic entity,string name);

    /// <summary>
    /// 获取单位或者物理组件的位置
    /// </summary>
    /// <param name="unit"> 单位或物理组件 </param>
    /// <returns>Position</returns>
    public static extern Point api_get_unit_or_physics_entity_pos(dynamic unit);

    /// <summary>
    /// 获得射线检测首次碰撞点
    /// </summary>
    /// <param name="start_point"> 起点 </param>
    /// <param name="end_point"> 终点 </param>
    /// <returns>碰撞点</returns>
    public static extern Point api_physics_raycast(Point start_point,Point end_point);

    /// <summary>
    /// 设置物理组件可见性(以及是否为生效状态)
    /// </summary>
    /// <param name="physics_object_id"> 物理组件 </param>
    /// <param name="is_visible"> 是否可见 </param>
    /// <returns></returns>
    public static extern void api_set_physics_object_activated_and_visible(dynamic physics_object_id,bool? is_visible);

    /// <summary>
    /// 设置逻辑物理组件可见性(以及是否为生效状态)
    /// </summary>
    /// <param name="entity"> 物理组件 </param>
    /// <param name="is_visible"> 是否可见 </param>
    /// <returns></returns>
    public static extern void api_set_physics_entity_activated_and_visible(dynamic entity,bool? is_visible);

    /// <summary>
    /// 单位/逻辑物理组件之间是否有重叠
    /// </summary>
    /// <param name="entity_1"> 单位/逻辑物理组件 </param>
    /// <param name="entity_2"> 单位/逻辑物理组件 </param>
    /// <returns>是否有重叠</returns>
    public static extern bool? api_check_physics_is_overlapping(dynamic entity_1,dynamic entity_2);

    /// <summary>
    /// 单位/逻辑物理组件之间是否有碰撞
    /// </summary>
    /// <param name="entity_1"> 单位/逻辑物理组件 </param>
    /// <param name="entity_2"> 单位/逻辑物理组件 </param>
    /// <returns>是否有重叠</returns>
    public static extern bool? api_check_physics_is_contacting(dynamic entity_1,dynamic entity_2);

    /// <summary>
    /// 创建物理组件
    /// </summary>
    /// <param name="physics_object_id"> 物理组件类型 </param>
    /// <param name="translation"> 位置 </param>
    /// <param name="direction"> 朝向 </param>
    /// <returns>物理组件</returns>
    public static extern dynamic api_create_physics_object(int? physics_object_id,Point translation,Point direction);

    /// <summary>
    /// 创建逻辑物理组件
    /// </summary>
    /// <param name="physics_entity_id"> 物理组件类型 </param>
    /// <param name="translation"> 位置 </param>
    /// <param name="direction"> 朝向 </param>
    /// <param name="scale"> 缩放 </param>
    /// <returns></returns>
    public static extern void api_create_physics_entity(int? physics_entity_id,Point translation,Point direction,Fix32 scale);

    /// <summary>
    /// 删除物理组件
    /// </summary>
    /// <param name="physics_object_id"> 逻辑物理组件 </param>
    /// <returns></returns>
    public static extern void api_del_physics_object(dynamic physics_object_id);

    /// <summary>
    /// 删除逻辑物理组件
    /// </summary>
    /// <param name="physics_entity"> 逻辑物理组件 </param>
    /// <returns></returns>
    public static extern void api_del_physics_entity(dynamic physics_entity);

    /// <summary>
    /// 逻辑物理组件是否存在
    /// </summary>
    /// <param name="entity"> 逻辑物理组件 </param>
    /// <returns>布尔值</returns>
    public static extern bool? api_physics_entity_is_exist(dynamic entity);

    /// <summary>
    /// 逻辑物理组件中指定刚体的模型播放动画
    /// </summary>
    /// <param name="entity"> 物理组件 </param>
    /// <param name="body"> 刚体 </param>
    /// <param name="anim_name"> 动画名称 </param>
    /// <param name="loop"> 是否循环 </param>
    /// <param name="play_speed"> 速度 </param>
    /// <returns></returns>
    public static extern void api_physics_play_animation(dynamic entity,dynamic body,string anim_name,bool? loop,Fix32 play_speed);

    /// <summary>
    /// 获得逻辑物理组件的状态
    /// </summary>
    /// <param name="entity"> 物理组件 </param>
    /// <returns>状态</returns>
    public static extern PhysicsEntityState api_get_physics_entity_state(dynamic entity);

    /// <summary>
    /// 设置逻辑物理组件状态
    /// </summary>
    /// <param name="entity"> 物理组件 </param>
    /// <param name="state"> 状态 </param>
    /// <returns></returns>
    public static extern void api_set_entity_state(dynamic entity,PhysicsEntityState state);

    /// <summary>
    /// 设置逻辑物理组件的激活状态
    /// </summary>
    /// <param name="entity"> 物理组件 </param>
    /// <param name="is_active"> 激活状态 </param>
    /// <param name="visible"> 可见性 </param>
    /// <returns></returns>
    public static extern void api_set_entity_active(dynamic entity,bool? is_active,bool? visible);

    /// <summary>
    /// 判断逻辑物理组件是激活状态
    /// </summary>
    /// <param name="entity"> 物理组件 </param>
    /// <returns>激活状态</returns>
    public static extern bool? api_is_physics_entity_active(dynamic entity);

    /// <summary>
    /// 判断逻辑物理组件是关闭状态
    /// </summary>
    /// <param name="entity"> 物理组件 </param>
    /// <returns>关闭状态</returns>
    public static extern bool? api_is_physics_entity_deactive(dynamic entity);

    /// <summary>
    /// 根据id获得逻辑物理组件
    /// </summary>
    /// <param name="entity_id"> id </param>
    /// <returns>逻辑物理组件</returns>
    public static extern dynamic api_get_physics_entity(Fix32 entity_id);

    /// <summary>
    /// 设置重力加速度
    /// </summary>
    /// <param name="gravity"> 重力加速度 </param>
    /// <returns></returns>
    public static extern void api_set_gravity(Point gravity);

    /// <summary>
    /// 创建特效到逻辑物理组件
    /// </summary>
    /// <param name="entity"> 逻辑物理组件 </param>
    /// <param name="body_name"> 刚体名称 </param>
    /// <param name="sfx_id"> 特效ID </param>
    /// <param name="b_follow_rotate"> 是否跟随旋转 </param>
    /// <param name="b_follow_scale"> 是否跟随缩放 </param>
    /// <param name="position"> 偏移 </param>
    /// <param name="scale"> 缩放 </param>
    /// <param name="rotation"> 旋转 </param>
    /// <param name="duration"> 持续时间 </param>
    /// <param name="immediately"> 是否播放完移除 </param>
    /// <returns>特效</returns>
    public static extern Sfx api_create_sfx_on_rigid(dynamic entity,string body_name,Fix32 sfx_id,bool? b_follow_rotate,bool? b_follow_scale,Point position,Fix32 scale,Point rotation,Fix32 duration,bool? immediately);

    /// <summary>
    /// 获取逻辑物理组件类型
    /// </summary>
    /// <param name="entity"> 逻辑物理组件 </param>
    /// <returns>类型</returns>
    public static extern int? api_get_physics_entity_type(dynamic entity);

    /// <summary>
    /// 销毁逻辑物理组件
    /// </summary>
    /// <param name="entity"> 逻辑物理组件 </param>
    /// <returns></returns>
    public static extern void api_destroy_physics_entity(dynamic entity);

    /// <summary>
    /// 设置逻辑物理组件旋转（欧拉角）
    /// </summary>
    /// <param name="entity"> 逻辑物理组件 </param>
    /// <param name="angle_x"> X </param>
    /// <param name="angle_y"> Y </param>
    /// <param name="angle_z"> Z </param>
    /// <returns></returns>
    public static extern void api_physics_entity_set_orientation(dynamic entity,Fix32 angle_x,Fix32 angle_y,Fix32 angle_z);

    /// <summary>
    /// 逻辑物理组件是否有指定tag
    /// </summary>
    /// <param name="entity"> 逻辑物理组件 </param>
    /// <param name="tag"> tag </param>
    /// <returns>布尔值</returns>
    public static extern bool? api_physics_entity_has_tag(dynamic entity,string tag);

    /// <summary>
    /// 逻辑物理组件添加tag
    /// </summary>
    /// <param name="entity"> 逻辑物理组件 </param>
    /// <param name="tag"> tag </param>
    /// <returns></returns>
    public static extern void api_physics_entity_add_tag(dynamic entity,string tag);

    /// <summary>
    /// 逻辑物理组件删除tag
    /// </summary>
    /// <param name="entity"> 逻辑物理组件 </param>
    /// <param name="tag"> tag </param>
    /// <returns></returns>
    public static extern void api_physics_entity_remove_tag(dynamic entity,string tag);

    /// <summary>
    /// 获取单位的rigidBody
    /// </summary>
    /// <param name="unit"> 单位 </param>
    /// <returns>RigidBody</returns>
    public static extern dynamic api_get_rigid_body_in_unit(Unit unit);

    /// <summary>
    /// 设置物理主控单位
    /// </summary>
    /// <param name="unit"> 单位 </param>
    /// <param name="ragdoll_collide"> Ragdoll是否碰撞 </param>
    /// <returns></returns>
    public static extern void set_physics_ctrl_unit(Unit unit,bool? ragdoll_collide);

    /// <summary>
    /// 获取物理主控单位
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <returns>单位</returns>
    public static extern Unit get_physics_ctrl_unit(Role role);

    /// <summary>
    /// 设置主控单位可见性visual
    /// </summary>
    /// <param name="unit"> 单位 </param>
    /// <param name="is_visible"> 可见性 </param>
    /// <param name="only_self"> 仅自己生效 </param>
    /// <param name="only_self_friend"> 仅自己和友军生效 </param>
    /// <param name="only_enemy"> 仅对敌军生效 </param>
    /// <returns></returns>
    public static extern void api_set_cc_visibility(Unit unit,bool? is_visible,bool? only_self,bool? only_self_friend,bool? only_enemy);

    /// <summary>
    /// 创建单位
    /// </summary>
    /// <param name="key"> 单位编号 </param>
    /// <param name="location"> 位置 </param>
    /// <param name="direction"> 朝向 </param>
    /// <param name="role_or_unit"> 所属玩家 </param>
    /// <returns>创建出的单位</returns>
    public static extern Unit create_unit_at_vector3(int? key,Point location,Point direction,Role role_or_unit);

    /// <summary>
    /// 单位传送到指定坐标
    /// </summary>
    /// <param name="unit"> 单位 </param>
    /// <param name="position"> 目标坐标 </param>
    /// <param name="clear_speed"> 是否清除速度 </param>
    /// <returns></returns>
    public static extern void api_unit_transmit_3d(Unit unit,Point position,bool? clear_speed);

    /// <summary>
    /// 复活单位
    /// </summary>
    /// <param name="unit"> 单位 </param>
    /// <param name="position"> 复活位置 </param>
    /// <param name="clear_speed"> 清除速度 </param>
    /// <returns></returns>
    public static extern void api_revive_unit_3d(Unit unit,Point position,bool? clear_speed);

    /// <summary>
    /// 获取角色所处状态机节点名称
    /// </summary>
    /// <param name="unit"> 单位 </param>
    /// <returns>状态机节点名称</returns>
    public static extern string api_get_character_state_name(Unit unit);

    /// <summary>
    /// 让单位lookat镜头
    /// </summary>
    /// <param name="unit"> 单位 </param>
    /// <returns></returns>
    public static extern void cc_look_at_camera(Unit unit);

    /// <summary>
    /// 让单位lookat目标单位
    /// </summary>
    /// <param name="unit"> 单位 </param>
    /// <param name="other_unit"> 单位 </param>
    /// <returns></returns>
    public static extern void cc_look_at_other_unit(Unit unit,Unit other_unit);

    /// <summary>
    /// 取消单位lookat
    /// </summary>
    /// <param name="unit"> 单位 </param>
    /// <returns></returns>
    public static extern void cc_cancel_look_at(Unit unit);

    /// <summary>
    /// 获取单位周围的随机单位
    /// </summary>
    /// <param name="unit"> 单位 </param>
    /// <param name="radius"> 距离 </param>
    /// <returns>随机单位</returns>
    public static extern Unit cc_get_random_unit_around(Unit unit,Fix32 radius);

    /// <summary>
    /// 动画状态机状态判断
    /// </summary>
    /// <param name="state1"> 动画机状态 </param>
    /// <param name="state2"> 动画机状态 </param>
    /// <returns>是否相等</returns>
    public static extern bool? api_check_asm_state(int? state1,int? state2);

    /// <summary>
    /// 获取单位碰撞盒里最近的抓取单位（测试用）
    /// </summary>
    /// <param name="unit"> 单位 </param>
    /// <returns>距离最近的单位</returns>
    public static extern Unit api_get_grab_character(Unit unit);

    /// <summary>
    /// 抓取技能
    /// </summary>
    /// <param name="source"> 施法单位 </param>
    /// <param name="target"> 目标单位 </param>
    /// <returns></returns>
    public static extern void api_grab(Unit source,Unit target);

    /// <summary>
    /// 判断 - 是否可以施放暴揍技能
    /// </summary>
    /// <param name="source"> 施法单位 </param>
    /// <param name="target"> 目标单位 </param>
    /// <param name="bind"> 绑点名称 </param>
    /// <returns>是否可以施放</returns>
    public static extern bool? check_catch_other_character(Unit source,Unit target,string bind);

    /// <summary>
    /// 暴揍技能
    /// </summary>
    /// <param name="source"> 施法单位 </param>
    /// <param name="target"> 目标单位 </param>
    /// <param name="state"> 暴揍动作 </param>
    /// <param name="duration"> 持续时间 </param>
    /// <param name="bind"> 绑点名称 </param>
    /// <returns></returns>
    public static extern void api_physics_catch(Unit source,Unit target,int? state,Fix32 duration,string bind);

    /// <summary>
    /// 移除手部黏连状态
    /// </summary>
    /// <param name="unit"> 单位 </param>
    /// <param name="handtype"> 左手/右手 </param>
    /// <returns></returns>
    public static extern void api_disconnect_hand(Unit unit,int? handtype);

    /// <summary>
    /// 移除双手的黏连状态
    /// </summary>
    /// <param name="unit"> 单位 </param>
    /// <returns></returns>
    public static extern void api_disconnect_both_hands(Unit unit);

    /// <summary>
    /// 检查手部是否处于黏连状态
    /// </summary>
    /// <param name="unit"> 单位 </param>
    /// <param name="handtype"> 左手/右手 </param>
    /// <returns>是否黏连</returns>
    public static extern bool? api_check_hand_connection(Unit unit,int? handtype);

    /// <summary>
    /// 主控角色做预定义行为
    /// </summary>
    /// <param name="unit"> 角色 </param>
    /// <param name="cc_action"> 预定义行为ID </param>
    /// <param name="cc_hand"> 左手/右手 </param>
    /// <returns></returns>
    public static extern void cc_do_predefined_action(Unit unit,int? cc_action,int? cc_hand);

    /// <summary>
    /// 重载角色动画状态
    /// </summary>
    /// <param name="unit"> 角色 </param>
    /// <param name="anim_status"> 动画机节点名字 </param>
    /// <param name="anim_name"> 动画名 </param>
    /// <returns></returns>
    public static extern void api_override_anim_status(Unit unit,string anim_status,string anim_name);

    /// <summary>
    /// 判断单位上半身行动受限
    /// </summary>
    /// <param name="unit"> 单位 </param>
    /// <returns>是否受限</returns>
    public static extern bool? is_upper_body_limited(Unit unit);

    /// <summary>
    /// 投掷技能
    /// </summary>
    /// <param name="unit"> 施法单位 </param>
    /// <returns></returns>
    public static extern void api_physics_throw(Unit unit);

    /// <summary>
    /// 拾取物品
    /// </summary>
    /// <param name="unit"> 施法单位 </param>
    /// <returns></returns>
    public static extern void api_physics_pick_up(Unit unit);

    /// <summary>
    /// 拾取指定物品
    /// </summary>
    /// <param name="unit"> 单位 </param>
    /// <param name="item"> 物品 </param>
    /// <returns></returns>
    public static extern void api_physics_pick_up_item(Unit unit,Unit item);

    /// <summary>
    /// 单位丢弃物理道具
    /// </summary>
    /// <param name="unit"> 单位 </param>
    /// <returns></returns>
    public static extern void api_physics_drop(Unit unit);

    /// <summary>
    /// 施加倒地状态
    /// </summary>
    /// <param name="unit"> 施加目标 </param>
    /// <param name="duration"> 持续时间 </param>
    /// <returns></returns>
    public static extern void api_physics_hit_down_unit(Unit unit,Fix32 duration);

    /// <summary>
    /// 获取抓举单位
    /// </summary>
    /// <param name="unit"> 单位 </param>
    /// <returns></returns>
    public static extern void api_get_grab_unit(Unit unit);

    /// <summary>
    /// 检查是否处于抓举状态
    /// </summary>
    /// <param name="unit"> 单位 </param>
    /// <returns>是否处于抓举状态</returns>
    public static extern bool? api_check_grab_state(Unit unit);

    /// <summary>
    /// 获取手持物品
    /// </summary>
    /// <param name="unit"> 单位 </param>
    /// <returns></returns>
    public static extern void api_get_pick_item(Unit unit);

    /// <summary>
    /// 检查是否手持物品
    /// </summary>
    /// <param name="unit"> 单位 </param>
    /// <returns>是否手持物品</returns>
    public static extern bool? api_check_physics_unit_pick_item_exist(Unit unit);

    /// <summary>
    /// 增加击倒值
    /// </summary>
    /// <param name="unit"> 单位 </param>
    /// <param name="down_value"> 击倒值 </param>
    /// <returns></returns>
    public static extern void api_add_unit_down_value(Unit unit,Fix32 down_value);

    /// <summary>
    /// 开始使用手持道具
    /// </summary>
    /// <param name="unit"> 单位 </param>
    /// <returns></returns>
    public static extern void api_character_try_begin_use(Unit unit);

    /// <summary>
    /// 结束使用手持道具
    /// </summary>
    /// <param name="unit"> 单位 </param>
    /// <returns></returns>
    public static extern void api_character_try_end_use(Unit unit);

    /// <summary>
    /// 设置动画状态机为物理状态
    /// </summary>
    /// <param name="unit"> 单位 </param>
    /// <param name="duration"> 持续时间 </param>
    /// <returns></returns>
    public static extern void api_set_entity_anim_state_machine_physics(Unit unit,Fix32 duration);

    /// <summary>
    /// 获取角色移动速度
    /// </summary>
    /// <param name="unit"> 单位 </param>
    /// <returns>速度</returns>
    public static extern Point api_physics_unit_get_move_speed(Unit unit);

    /// <summary>
    /// 设置单位旋转（欧拉角）
    /// </summary>
    /// <param name="unit"> 单位 </param>
    /// <param name="angle_x"> X </param>
    /// <param name="angle_y"> Y </param>
    /// <param name="angle_z"> Z </param>
    /// <returns></returns>
    public static extern void api_physics_unit_set_orientation(Unit unit,Fix32 angle_x,Fix32 angle_y,Fix32 angle_z);

    /// <summary>
    /// 主控角色做预定义表情
    /// </summary>
    /// <param name="unit"> 角色 </param>
    /// <param name="cc_emo"> 预定义表情ID </param>
    /// <param name="duration"> 表情播放时长 </param>
    /// <returns></returns>
    public static extern void cc_change_emo(Unit unit,int? cc_emo,Fix32 duration);

    /// <summary>
    /// 单位切换状态机
    /// </summary>
    /// <param name="unit"> 单位 </param>
    /// <param name="state_name"> 状态机名称 </param>
    /// <returns></returns>
    public static extern void api_asm_jump_to_state(Unit unit,string state_name);

    /// <summary>
    /// 设置角色squash
    /// </summary>
    /// <param name="unit"> 角色 </param>
    /// <param name="squash"> squash </param>
    /// <returns></returns>
    public static extern void api_set_unit_squash(Unit unit,Fix32 squash);

    /// <summary>
    /// 设置单位移动
    /// </summary>
    /// <param name="unit"> 单位 </param>
    /// <param name="move_direction"> 方向 </param>
    /// <returns></returns>
    public static extern void api_set_unit_move(Unit unit,MoveDirection move_direction);

    /// <summary>
    /// 设置单位停止移动
    /// </summary>
    /// <param name="unit"> 单位 </param>
    /// <param name="move_direction"> 方向 </param>
    /// <returns></returns>
    public static extern void api_set_unit_stop_move(Unit unit,MoveDirection move_direction);

    /// <summary>
    /// 通知改键
    /// </summary>
    /// <param name="enable"> 是否使用 </param>
    /// <returns></returns>
    public static extern void api_notify_custom_key(bool? enable);

    /// <summary>
    /// 设置单位跳跃
    /// </summary>
    /// <param name="unit"> 单位 </param>
    /// <returns></returns>
    public static extern void api_set_unit_jump(Unit unit);

    /// <summary>
    /// 设置单位跑(角色配置的跑步速度)
    /// </summary>
    /// <param name="unit"> 单位 </param>
    /// <returns></returns>
    public static extern void api_set_unit_run(Unit unit);

    /// <summary>
    /// 设置单位走(角色配置的走路速度)
    /// </summary>
    /// <param name="unit"> 单位 </param>
    /// <returns></returns>
    public static extern void api_set_unit_walk(Unit unit);

    /// <summary>
    /// 设置单位速度
    /// </summary>
    /// <param name="unit"> 单位 </param>
    /// <param name="speed"> 速度 </param>
    /// <returns></returns>
    public static extern void api_set_unit_speed(Unit unit,Fix32 speed);

    /// <summary>
    /// 设置语音指令
    /// </summary>
    /// <param name="is_on"> 是否开启 </param>
    /// <returns></returns>
    public static extern void api_set_audio_cc(bool? is_on);

    /// <summary>
    /// 根据bid获取rigidBody
    /// </summary>
    /// <param name="bid"> body ID </param>
    /// <returns>RigidBody</returns>
    public static extern dynamic api_get_rigid_body_by_bid(int? bid);

    /// <summary>
    /// 刚体添加球形碰撞器
    /// </summary>
    /// <param name="body"> 刚体 </param>
    /// <param name="pos"> pos </param>
    /// <param name="radius"> radius </param>
    /// <param name="euler_angle"> euler_angle </param>
    /// <param name="is_trigger"> is_trigger </param>
    /// <returns></returns>
    public static extern void api_add_sphere_collider(dynamic body,Point pos,Fix32 radius,Point euler_angle,bool? is_trigger);

    /// <summary>
    /// 根据名称获取物理组件中的rigidbody
    /// </summary>
    /// <param name="physics_object"> 物理组件 </param>
    /// <param name="name"> 名称 </param>
    /// <returns>RigidBody</returns>
    public static extern dynamic api_get_rigid_body_in_physics_object(dynamic physics_object,string name);

    /// <summary>
    /// 获取刚体所属的单位
    /// </summary>
    /// <param name="body"> 刚体 </param>
    /// <returns>Owner</returns>
    public static extern Unit api_get_rigid_body_owner_unit(dynamic body);

    /// <summary>
    /// 获取刚体所属的逻辑物理组件
    /// </summary>
    /// <param name="body"> 刚体 </param>
    /// <returns>Owner</returns>
    public static extern dynamic api_get_rigid_body_owner_physics_entity(dynamic body);

    /// <summary>
    /// 向刚体施加力
    /// </summary>
    /// <param name="body"> 刚体 </param>
    /// <param name="force"> 力度 </param>
    /// <param name="direction"> 方向 </param>
    /// <returns>RigidBody</returns>
    public static extern dynamic api_add_force_to_rigid_body(dynamic body,Fix32 force,Point direction);

    /// <summary>
    /// 给刚体叠加速度
    /// </summary>
    /// <param name="body"> 刚体 </param>
    /// <param name="speed"> 速度的大小 </param>
    /// <param name="direction"> 速度的方向 </param>
    /// <returns>RigidBody</returns>
    public static extern dynamic api_add_velocity_to_rigid_body(dynamic body,Fix32 speed,Point direction);

    /// <summary>
    /// 获取刚体的位置
    /// </summary>
    /// <param name="body"> 刚体 </param>
    /// <returns>Position</returns>
    public static extern Point api_get_rigid_body_pos(dynamic body);

    /// <summary>
    /// 设置刚体的位置
    /// </summary>
    /// <param name="body"> 刚体 </param>
    /// <param name="pos"> pos </param>
    /// <returns></returns>
    public static extern void api_set_rigid_body_pos(dynamic body,Point pos);

    /// <summary>
    /// 设置刚体的朝向
    /// </summary>
    /// <param name="body"> 刚体 </param>
    /// <param name="direction"> direction </param>
    /// <returns></returns>
    public static extern void api_set_rigid_body_direction(dynamic body,Point direction);

    /// <summary>
    /// 设置刚体的刚体类型
    /// </summary>
    /// <param name="body"> 刚体 </param>
    /// <param name="body_type"> 刚体类型 </param>
    /// <returns></returns>
    public static extern void api_set_rigid_body_type(dynamic body,string body_type);

    /// <summary>
    /// 设置刚体的布尔类型属性
    /// </summary>
    /// <param name="body"> 刚体 </param>
    /// <param name="attr_name"> 布尔类型属性 </param>
    /// <param name="value"> 值 </param>
    /// <returns></returns>
    public static extern void api_set_rigid_body_bool_attr(dynamic body,string attr_name,bool? value);

    /// <summary>
    /// 设置刚体有效性
    /// </summary>
    /// <param name="body"> 刚体 </param>
    /// <param name="is_active"> 是否有效 </param>
    /// <returns></returns>
    public static extern void api_set_rigidbody_active(dynamic body,bool? is_active);

    /// <summary>
    /// 设置刚体模型可见性
    /// </summary>
    /// <param name="body"> 物理组件 </param>
    /// <param name="visible"> 刚体 </param>
    /// <returns></returns>
    public static extern void api_set_rigidbody_visible(dynamic body,dynamic visible);

    /// <summary>
    /// 获取刚体有效性
    /// </summary>
    /// <param name="body"> 刚体 </param>
    /// <returns>是否有效</returns>
    public static extern bool? api_get_rigidbody_active(dynamic body);

    /// <summary>
    /// 设置刚体速度
    /// </summary>
    /// <param name="body"> 刚体 </param>
    /// <param name="speed"> 速度大小 </param>
    /// <param name="direction"> 速度方向 </param>
    /// <returns></returns>
    public static extern void api_set_rigidbody_velocity(dynamic body,Fix32 speed,Point direction);

    /// <summary>
    /// 获得刚体速度
    /// </summary>
    /// <param name="body"> 刚体 </param>
    /// <returns>速度</returns>
    public static extern Point api_get_rigidbody_velocity(dynamic body);

    /// <summary>
    /// 设置刚体角速度
    /// </summary>
    /// <param name="body"> 刚体 </param>
    /// <param name="angular_velocity"> 角速度 </param>
    /// <returns></returns>
    public static extern void api_set_rigidbody_angular_velocity(dynamic body,Point angular_velocity);

    /// <summary>
    /// 设置刚体角速度
    /// </summary>
    /// <param name="body"> 刚体 </param>
    /// <returns></returns>
    public static extern void api_get_rigidbody_angular_velocity(dynamic body);

    /// <summary>
    /// 获得刚体朝向
    /// </summary>
    /// <param name="body"> 刚体 </param>
    /// <returns>朝向</returns>
    public static extern Point api_get_rigidbody_forward(dynamic body);

    /// <summary>
    /// 获得范围内的刚体组
    /// </summary>
    /// <param name="position"> 位置 </param>
    /// <param name="radius"> 半径 </param>
    /// <param name="collision_category"> 自身碰撞类别 </param>
    /// <param name="collide_with_mask"> 目标碰撞类别 </param>
    /// <param name="ignore_trigger"> 忽略触发器 </param>
    /// <param name="ignore_non_trigger"> 忽略非触发器 </param>
    /// <param name="ignore_non_rigid"> 忽略非刚体 </param>
    /// <param name="ignore_dynamic"> 忽略动态物体 </param>
    /// <param name="ignore_kinematic"> 忽略运动学物体 </param>
    /// <param name="ignore_static"> 忽略静态物体 </param>
    /// <param name="ignore_logic_body"> 忽略逻辑物体 </param>
    /// <param name="ignore_non_logic_body"> 忽略非逻辑物体 </param>
    /// <returns>刚体组</returns>
    public static extern dynamic api_get_rigid_body_group_in_range(Point position,double? radius,int? collision_category,int? collide_with_mask,bool? ignore_trigger,bool? ignore_non_trigger,bool? ignore_non_rigid,bool? ignore_dynamic,bool? ignore_kinematic,bool? ignore_static,bool? ignore_logic_body,bool? ignore_non_logic_body);

    /// <summary>
    /// 替换刚体模型
    /// </summary>
    /// <param name="body"> 刚体 </param>
    /// <param name="id"> 模型id </param>
    /// <returns></returns>
    public static extern void api_replace_rigid_body_model(dynamic body,int? id);

    /// <summary>
    /// 还原刚体上一个模型
    /// </summary>
    /// <param name="body"> 刚体 </param>
    /// <returns></returns>
    public static extern void api_restore_rigid_body_last_model(dynamic body);

    /// <summary>
    /// 获得刚体中指定名字的碰撞器
    /// </summary>
    /// <param name="body"> 刚体 </param>
    /// <param name="name"> 碰撞器名字 </param>
    /// <returns>Collider</returns>
    public static extern dynamic api_get_rigid_body_collider(dynamic body,string name);

    /// <summary>
    /// 刚体是否有指定tag
    /// </summary>
    /// <param name="body"> 刚体 </param>
    /// <param name="tag"> tag </param>
    /// <returns>布尔值</returns>
    public static extern bool? api_is_rigid_has_tag(dynamic body,string tag);

    /// <summary>
    /// 获取刚体质量
    /// </summary>
    /// <param name="body"> 刚体 </param>
    /// <returns>质量</returns>
    public static extern Fix32 api_rigid_body_get_mass(dynamic body);

    /// <summary>
    /// 设置刚体模型缩放
    /// </summary>
    /// <param name="body"> 刚体 </param>
    /// <param name="scale_x"> x缩放 </param>
    /// <param name="scale_y"> y缩放 </param>
    /// <param name="scale_z"> z缩放 </param>
    /// <returns></returns>
    public static extern void api_rigid_body_set_scale(dynamic body,double? scale_x,double? scale_y,double? scale_z);

    /// <summary>
    /// 刚体按照指定轴旋转
    /// </summary>
    /// <param name="body"> 刚体 </param>
    /// <param name="axis"> 轴 </param>
    /// <param name="angle"> 角度 </param>
    /// <returns></returns>
    public static extern void api_rigid_body_angle_axis(dynamic body,Point axis,Fix32 angle);

    /// <summary>
    /// 扔出刚体
    /// </summary>
    /// <param name="body"> 刚体 </param>
    /// <param name="start"> 抛出点 </param>
    /// <param name="forward"> 抛出方向 </param>
    /// <param name="length"> 抛出距离 </param>
    /// <param name="speed"> 水平速度 </param>
    /// <returns></returns>
    public static extern void api_throw_rigid_body(dynamic body,Point start,Point forward,Fix32 length,Fix32 speed);

    /// <summary>
    /// 设置刚体的相对坐标系的速度
    /// </summary>
    /// <param name="body"> 刚体 </param>
    /// <param name="speed"> 速度大小 </param>
    /// <param name="direction"> 速度方向 </param>
    /// <returns></returns>
    public static extern void api_set_rigid_body_reference_frame_velocity(dynamic body,Fix32 speed,Point direction);

    /// <summary>
    /// 设置刚体绑定目标刚体的相对坐标系
    /// </summary>
    /// <param name="body"> 刚体 </param>
    /// <param name="target"> 目标刚体 </param>
    /// <returns></returns>
    public static extern void api_set_rigid_body_add_reference_frame(dynamic body,dynamic target);

    /// <summary>
    /// 设置刚体移除目标刚体的相对坐标系
    /// </summary>
    /// <param name="body"> 刚体 </param>
    /// <param name="target"> 目标刚体 </param>
    /// <returns></returns>
    public static extern void api_set_rigid_body_remove_reference_frame(dynamic body,dynamic target);

    /// <summary>
    /// 把刚体的本地坐标转到全局坐标
    /// </summary>
    /// <param name="body"> 刚体 </param>
    /// <param name="local_pos"> local_pos </param>
    /// <returns></returns>
    public static extern void api_transform_local_to_global_coords(dynamic body,Point local_pos);

    /// <summary>
    /// 添加刚体到刚体组
    /// </summary>
    /// <param name="body"> 刚体 </param>
    /// <param name="group"> 刚体组 </param>
    /// <returns></returns>
    public static extern void api_add_rigid_body_to_group(Unit body,dynamic group);

    /// <summary>
    /// 从刚体组中移除刚体
    /// </summary>
    /// <param name="group"> 刚体组 </param>
    /// <param name="body"> 刚体 </param>
    /// <returns></returns>
    public static extern void api_remove_rigid_body_in_group(UnitGroup group,Unit body);

    /// <summary>
    /// 删除REACTION
    /// </summary>
    /// <param name="reaction"> Reaction </param>
    /// <returns></returns>
    public static extern void api_delete_reaction(dynamic reaction);

    /// <summary>
    /// 删除REACTION Group
    /// </summary>
    /// <param name="reactions"> ReactionGroup </param>
    /// <returns></returns>
    public static extern void api_delete_reaction_group(dynamic reactions);

    /// <summary>
    /// 刚体增加均匀引力场
    /// </summary>
    /// <param name="body"> 刚体 </param>
    /// <param name="speed"> 速度大小 </param>
    /// <param name="position"> 力场源点 </param>
    /// <returns>物理Reaction</returns>
    public static extern dynamic api_add_uniform_gravitation_field_to_rigid_body(dynamic body,Fix32 speed,Point position);

    /// <summary>
    /// 刚体增加风场
    /// </summary>
    /// <param name="body"> 刚体 </param>
    /// <param name="speed"> 速度大小 </param>
    /// <param name="direction"> 速度方向 </param>
    /// <returns>RigidBody</returns>
    public static extern dynamic api_add_wind_force_field_to_rigid_body(dynamic body,Fix32 speed,Point direction);

    /// <summary>
    /// 物理物品抛出
    /// </summary>
    /// <param name="physics_item"> 物品单位 </param>
    /// <param name="length"> 抛出距离 </param>
    /// <param name="vel"> 水平速度 </param>
    /// <param name="socket_name"> 出手绑点 </param>
    /// <returns></returns>
    public static extern void throw_physics_item(Unit physics_item,Fix32 length,Fix32 vel,string socket_name);

    /// <summary>
    /// 获取物理物品的刚体
    /// </summary>
    /// <param name="physics_item"> 物品单位 </param>
    /// <returns></returns>
    public static extern void get_physics_item_body_object(Unit physics_item);

    /// <summary>
    /// 删除逻辑物理物品
    /// </summary>
    /// <param name="physics_item"> 物品单位 </param>
    /// <returns></returns>
    public static extern void api_remove_physics_item(Unit physics_item);

    /// <summary>
    /// 逻辑物理物品模型解绑持有者
    /// </summary>
    /// <param name="physics_item"> 物品单位 </param>
    /// <returns></returns>
    public static extern void api_physics_item_viewer_detach(Unit physics_item);

    /// <summary>
    /// 获取逻辑物理物品绑定技能
    /// </summary>
    /// <param name="physics_item"> 物品单位 </param>
    /// <returns></returns>
    public static extern void api_physics_item_get_ability(Unit physics_item);

    /// <summary>
    /// 逻辑物理物品创建特效
    /// </summary>
    /// <param name="physics_item"> 物理组件 </param>
    /// <param name="sfx_id"> 特效ID </param>
    /// <param name="position"> 位置 </param>
    /// <param name="duration"> 持续时间 </param>
    /// <returns></returns>
    public static extern void api_physics_item_create_sfx(dynamic physics_item,Fix32 sfx_id,Point position,Fix32 duration);

    /// <summary>
    /// 逻辑物理物品播放动画
    /// </summary>
    /// <param name="physics_item"> 物理组件 </param>
    /// <param name="anim"> 动画名称 </param>
    /// <param name="play_speed"> 播放倍率 </param>
    /// <param name="begin_t"> 开始时间(s) </param>
    /// <param name="end_t"> 结束时间(s)，正数 -1 表示不结束 </param>
    /// <param name="loop"> 是否循环 </param>
    /// <param name="return_idle"> 播放结束后是否恢复idle </param>
    /// <returns></returns>
    public static extern void api_physics_item_play_animation(Unit physics_item,string anim,double? play_speed,double? begin_t,double? end_t,bool? loop,bool? return_idle);

    /// <summary>
    /// 单位扔出物理组件
    /// </summary>
    /// <param name="entity"> 物理组件 </param>
    /// <param name="length"> 抛出距离 </param>
    /// <param name="vel"> 水平速度 </param>
    /// <param name="socket_name"> 出手绑点 </param>
    /// <returns></returns>
    public static extern void throw_physics_entity(dynamic entity,Fix32 length,Fix32 vel,string socket_name);

    /// <summary>
    /// 持有者解绑逻辑物理组件模型
    /// </summary>
    /// <param name="entity"> 逻辑物理组件 </param>
    /// <returns></returns>
    public static extern void api_detach_physics_entity_viewer(Unit entity);

    /// <summary>
    /// 获得逻辑物理组件的持有者
    /// </summary>
    /// <param name="entity"> 逻辑物理组件 </param>
    /// <returns>持有者</returns>
    public static extern Unit api_get_physics_entity_owner(dynamic entity);

    /// <summary>
    /// 创建特效到三维坐标
    /// </summary>
    /// <param name="sfx_id"> 特效编号 </param>
    /// <param name="position"> 位置 </param>
    /// <param name="direction"> 朝向 </param>
    /// <param name="scale"> 缩放比例 </param>
    /// <param name="duration"> 持续时间 </param>
    /// <param name="immediately"> 是否立即删除 </param>
    /// <returns>特效</returns>
    public static extern Sfx create_sfx_on_point_3d(int? sfx_id,Point position,Point direction,double? scale,double? duration,bool? immediately);

    /// <summary>
    /// 调试暂停
    /// </summary>
    /// <returns></returns>
    public static extern void api_debug_pause();

    /// <summary>
    /// LUA层初始化参数
    /// </summary>
    /// <param name="name"> name </param>
    /// <param name="value"> value </param>
    /// <param name="if_list"> 是否数组 </param>
    /// <returns>变量</returns>
    public static extern dynamic init_lua_var(string name,string value,bool? if_list);

    /// <summary>
    /// 从lua设置变量
    /// </summary>
    /// <param name="func_name"> 函数名称 </param>
    /// <param name="actor"> actor </param>
    /// <param name="key"> index </param>
    /// <param name="index"> key </param>
    /// <param name="value"> value </param>
    /// <returns></returns>
    public static extern void set_lua_var(string func_name,dynamic actor,int? key,string index,string value);

    /// <summary>
    /// 从lua读取变量
    /// </summary>
    /// <param name="func_name"> 函数名称 </param>
    /// <param name="actor"> actor </param>
    /// <param name="key"> key </param>
    /// <param name="index"> index </param>
    /// <returns></returns>
    public static extern void get_lua_var(string func_name,dynamic actor,string key,int? index);

    /// <summary>
    /// 设置随机数种子
    /// </summary>
    /// <param name="v"> 随机数种子 </param>
    /// <returns></returns>
    public static extern void set_random_seed(int? v);

    /// <summary>
    /// 获取随机数种子
    /// </summary>
    /// <returns>随机数种子</returns>
    public static extern int? get_random_seed();

    /// <summary>
    /// 创建单位
    /// </summary>
    /// <param name="key"> 单位编号 </param>
    /// <param name="pos"> 位置 </param>
    /// <param name="angle"> 朝向 </param>
    /// <param name="role_or_unit"> 所属玩家 </param>
    /// <returns>创建出的单位</returns>
    public static extern Unit create_unit(int? key,Point pos,Fix32 angle,Role role_or_unit);

    /// <summary>
    /// 改变单位所属玩家
    /// </summary>
    /// <param name="unit"> 单位 </param>
    /// <param name="role"> 所属玩家 </param>
    /// <returns></returns>
    public static extern void change_unit_role(Unit unit,Role role);

    /// <summary>
    /// 改变投射物所属单位
    /// </summary>
    /// <param name="projectile"> 投射物 </param>
    /// <param name="unit"> 单位 </param>
    /// <returns></returns>
    public static extern void change_projectile_owner(ProjectileEntity projectile,Unit unit);

    /// <summary>
    /// 改变投射物所属技能
    /// </summary>
    /// <param name="projectile"> 投射物 </param>
    /// <param name="related_ability"> 单位 </param>
    /// <returns></returns>
    public static extern void change_projectile_ability(ProjectileEntity projectile,Ability related_ability);

    /// <summary>
    /// 修改玩家资源图标
    /// </summary>
    /// <param name="res_key"> 资源名称 </param>
    /// <param name="icon_id"> 图标编号 </param>
    /// <returns></returns>
    public static extern void change_role_res_icon(string res_key,int? icon_id);

    /// <summary>
    /// 修改玩家资源图标(图片类型)
    /// </summary>
    /// <param name="res_key"> 资源名称 </param>
    /// <param name="icon_id"> 图标 </param>
    /// <returns></returns>
    public static extern void change_role_res_icon_with_icon(string res_key,int? icon_id);

    /// <summary>
    /// 移除控制列表中的某个单位
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="unit"> 单位 </param>
    /// <returns></returns>
    public static extern void remove_control_unit(Role role,Unit unit);

    /// <summary>
    /// 获取队伍内单位列表
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="team_id"> 队伍编号 </param>
    /// <returns></returns>
    public static extern void get_unit_ids_in_team(Role role,int? team_id);

    /// <summary>
    /// 给队伍添加单位
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="team_id"> 队伍编号 </param>
    /// <param name="unit"> 单位 </param>
    /// <returns></returns>
    public static extern void add_unit_to_team(Role role,int? team_id,Unit unit);

    /// <summary>
    /// 从队伍中去除单位
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="team_id"> 队伍编号 </param>
    /// <param name="unit"> 单位 </param>
    /// <returns></returns>
    public static extern void remove_unit_from_team(Role role,int? team_id,Unit unit);

    /// <summary>
    /// 创建幻象
    /// </summary>
    /// <param name="clone_unit"> 复制目标 </param>
    /// <param name="caller_unit"> 召唤者 </param>
    /// <param name="role"> 玩家 </param>
    /// <param name="pos"> 位置 </param>
    /// <param name="angle"> 朝向 </param>
    /// <param name="clone_hp_mp"> 是否继承生命与魔法 </param>
    /// <returns></returns>
    public static extern Unit create_illusion(Unit clone_unit,Unit caller_unit,Role role,Point pos,Fix32 angle,bool? clone_hp_mp);

    /// <summary>
    /// 判断单位是否是幻象单位
    /// </summary>
    /// <param name="unit"> 单位 </param>
    /// <returns>是否是幻象</returns>
    public static extern bool? is_unit_illusion(Unit unit);

    /// <summary>
    /// 获取幻象召唤者
    /// </summary>
    /// <param name="illusion_unit"> 幻象单位 </param>
    /// <returns>召唤单位</returns>
    public static extern Unit get_illusion_caller_unit(Unit illusion_unit);

    /// <summary>
    /// 在单位的挂接点创建一个投掷物
    /// </summary>
    /// <param name="p_key"> 投掷物编号 </param>
    /// <param name="socket_unit"> 挂节点所属单位 </param>
    /// <param name="socket_name"> 挂接点名称 </param>
    /// <param name="face"> 朝向 </param>
    /// <param name="owner_unit_or_player"> 所属单位或玩家 </param>
    /// <param name="related_ability"> 关联技能 </param>
    /// <param name="visibility"> 粒子特效可见性规则 </param>
    /// <param name="duration"> 持续时间 </param>
    /// <param name="is_open_duration"> 是否启用持续时间 </param>
    /// <param name="immediately"> 立即移除表现 </param>
    /// <param name="use_sys_d_destroy_way"> 特效删除的方式是否读表 </param>
    /// <returns>创建出的投掷物</returns>
    public static extern ProjectileEntity create_projectile_on_socket(int? p_key,Unit socket_unit,string socket_name,Fix32 face,dynamic owner_unit_or_player,Ability related_ability,int? visibility,Fix32 duration,bool? is_open_duration,bool? immediately,bool? use_sys_d_destroy_way);

    /// <summary>
    /// 创建一个投掷物
    /// </summary>
    /// <param name="p_key"> 投掷物编号 </param>
    /// <param name="location"> 位置 </param>
    /// <param name="face"> 朝向 </param>
    /// <param name="owner_unit_or_player"> 所属单位 </param>
    /// <param name="related_ability"> 关联技能 </param>
    /// <param name="duration"> 持续时间 </param>
    /// <param name="is_open_duration"> 是否启用持续时间 </param>
    /// <param name="height"> 高度 </param>
    /// <param name="visibility"> 粒子特效可见性规则 </param>
    /// <param name="immediately"> 立即移除表现 </param>
    /// <param name="use_sys_d_destroy_way"> 特效删除的方式是否读表 </param>
    /// <returns>创建出的投掷物</returns>
    public static extern ProjectileEntity create_projectile_in_scene(int? p_key,Point location,Fix32 face,Unit owner_unit_or_player,Ability related_ability,Fix32 duration,bool? is_open_duration,Fix32 height,int? visibility,bool? immediately,bool? use_sys_d_destroy_way);

    /// <summary>
    /// 创建一个投掷物
    /// </summary>
    /// <param name="p_key"> 投掷物编号 </param>
    /// <param name="location"> 位置 </param>
    /// <param name="owner_unit_or_player"> 所属单位或玩家 </param>
    /// <param name="face"> 朝向 </param>
    /// <param name="related_ability"> 关联技能 </param>
    /// <param name="duration"> 持续时间 </param>
    /// <param name="is_open_duration"> 是否启用持续时间 </param>
    /// <param name="height"> 高度 </param>
    /// <param name="visibility"> 粒子特效可见性规则 </param>
    /// <param name="immediately"> 立即移除表现 </param>
    /// <param name="use_sys_d_destroy_way"> 特效删除的方式是否读表 </param>
    /// <returns>创建出的投掷物</returns>
    public static extern ProjectileEntity create_projectile_in_scene_new(int? p_key,Point location,dynamic owner_unit_or_player,Fix32 face,Ability related_ability,Fix32 duration,bool? is_open_duration,Fix32 height,int? visibility,bool? immediately,bool? use_sys_d_destroy_way);

    /// <summary>
    /// 播放音乐
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="sid"> 乐曲编号 </param>
    /// <param name="loop"> 是否循环 </param>
    /// <param name="fade_in_time"> 淡入时间 </param>
    /// <param name="fade_out_time"> 淡出时间 </param>
    /// <returns>声音对象</returns>
    public static extern SoundEntity play_sound_for_player(Role role,int? sid,bool? loop,double? fade_in_time,double? fade_out_time);

    /// <summary>
    /// 对目标播放音乐
    /// </summary>
    /// <param name="unit_key"> 单位编号 </param>
    /// <param name="camp_target"> 玩家关系 </param>
    /// <param name="sid"> 乐曲编号 </param>
    /// <param name="loop"> 是否循环 </param>
    /// <returns></returns>
    public static extern void play_sound_for_role_relation(int? unit_key,int? camp_target,int? sid,bool? loop);

    /// <summary>
    /// 播放3d音乐
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="sid"> 乐曲编号 </param>
    /// <param name="position"> 播放位置 </param>
    /// <param name="height"> 高度 </param>
    /// <param name="fade_in_time"> 淡入时间 </param>
    /// <param name="fade_out_time"> 淡出时间 </param>
    /// <param name="ensure_play"> 确保播放 </param>
    /// <param name="loop"> 是否循环 </param>
    /// <returns>声音对象</returns>
    public static extern SoundEntity play_3d_sound_for_player(Role role,int? sid,Point position,double? height,double? fade_in_time,double? fade_out_time,bool? ensure_play,bool? loop);

    /// <summary>
    /// 跟随单位播放3d音乐
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="sid"> 乐曲编号 </param>
    /// <param name="unit"> 单位 </param>
    /// <param name="fade_in_time"> 淡入时间 </param>
    /// <param name="fade_out_time"> 淡出时间 </param>
    /// <param name="ensure_play"> 确保播放 </param>
    /// <param name="loop"> 是否循环 </param>
    /// <param name="offset_x"> 偏移x </param>
    /// <param name="offset_y"> 偏移y </param>
    /// <param name="offset_z"> 偏移z </param>
    /// <returns>声音对象</returns>
    public static extern SoundEntity follow_object_play_3d_sound_for_player(Role role,int? sid,Unit unit,double? fade_in_time,double? fade_out_time,bool? ensure_play,bool? loop,double? offset_x,double? offset_y,double? offset_z);

    /// <summary>
    /// 停止播放音乐
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="sound"> 声音 </param>
    /// <param name="immediately_stop"> 是否立即停止 </param>
    /// <returns></returns>
    public static extern void stop_sound(Role role,SoundEntity sound,bool? immediately_stop);

    /// <summary>
    /// 播放控制
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="sound"> 声音 </param>
    /// <param name="play_operation"> 播放操作 </param>
    /// <returns></returns>
    public static extern void sound_play_controller(Role role,SoundEntity sound,int? play_operation);

    /// <summary>
    /// 将玩家添加到玩家组
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="group"> 玩家组 </param>
    /// <returns></returns>
    public static extern void add_role_to_group(Role role,RoleGroup group);

    /// <summary>
    /// 玩家组中删除玩家
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="group"> 玩家组 </param>
    /// <returns></returns>
    public static extern void rem_role_from_group(Role role,RoleGroup group);

    /// <summary>
    /// 根据单位ID获取单位
    /// </summary>
    /// <param name="unit_id"> 单位id </param>
    /// <returns>单位</returns>
    public static extern Unit get_unit_by_id(int? unit_id);

    /// <summary>
    /// 根据特效ID获取特效
    /// </summary>
    /// <param name="projectile_id"> 特效id </param>
    /// <returns>特效</returns>
    public static extern ProjectileEntity get_projectile_by_id(int? projectile_id);

    /// <summary>
    /// 判断单位是否在单位组
    /// </summary>
    /// <param name="unit"> 单位 </param>
    /// <param name="group"> 单位组 </param>
    /// <returns>是否在单位组</returns>
    public static extern bool? judge_unit_in_group(Unit unit,UnitGroup group);

    /// <summary>
    /// 获取科技图标
    /// </summary>
    /// <param name="tech_key"> 科技编号 </param>
    /// <param name="target_level"> 等级 </param>
    /// <returns>图片</returns>
    public static extern int? api_get_tech_icon(int? tech_key,int? target_level);

    /// <summary>
    /// 点与点的角度
    /// </summary>
    /// <param name="p1"> 点 </param>
    /// <param name="p2"> 目标点 </param>
    /// <returns>角度</returns>
    public static extern Fix32 get_points_angle(Point p1,Point p2);

    /// <summary>
    /// 点与点的距离
    /// </summary>
    /// <param name="p1"> 点 </param>
    /// <param name="p2"> 目标点 </param>
    /// <returns>距离</returns>
    public static extern Fix32 get_points_dis(Point p1,Point p2);

    /// <summary>
    /// 获取当前点的地面高度
    /// </summary>
    /// <param name="point"> 点 </param>
    /// <returns>地面高度</returns>
    public static extern Fix32 get_point_ground_height(Point point);

    /// <summary>
    /// 获取当前点的碰撞类型
    /// </summary>
    /// <param name="point"> 点 </param>
    /// <returns>碰撞类型</returns>
    public static extern int? get_point_ground_collision(Point point);

    /// <summary>
    /// 获取当前点的视野隔断类型
    /// </summary>
    /// <param name="point"> 点 </param>
    /// <returns>隔断类型</returns>
    public static extern int? get_point_view_block_type(Point point);

    /// <summary>
    /// 判断点是否在区域内
    /// </summary>
    /// <param name="point"> 点 </param>
    /// <param name="area"> 区域 </param>
    /// <returns>点是否在区域中</returns>
    public static extern bool? judge_point_in_area(Point point,Area area);

    /// <summary>
    /// 判断点是否在正方形内
    /// </summary>
    /// <param name="point"> 点 </param>
    /// <param name="center"> 中心点 </param>
    /// <param name="width"> 正方形边长 </param>
    /// <returns>点是否在正方形中</returns>
    public static extern bool? judge_point_in_rec(Point point,Point center,Fix32 width);

    /// <summary>
    /// 给区域添加tag
    /// </summary>
    /// <param name="area"> 区域 </param>
    /// <param name="tag"> tag </param>
    /// <returns></returns>
    public static extern void add_area_tag(Area area,string tag);

    /// <summary>
    /// 给区域移除tag
    /// </summary>
    /// <param name="area"> 区域 </param>
    /// <param name="tag"> tag </param>
    /// <returns></returns>
    public static extern void remove_area_tag(Area area,string tag);

    /// <summary>
    /// 给路径添加tag
    /// </summary>
    /// <param name="road"> 路径 </param>
    /// <param name="tag"> tag </param>
    /// <returns></returns>
    public static extern void add_road_tag(Road road,string tag);

    /// <summary>
    /// 给路径移除tag
    /// </summary>
    /// <param name="road"> 路径 </param>
    /// <param name="tag"> tag </param>
    /// <returns></returns>
    public static extern void remove_road_tag(Road road,string tag);

    /// <summary>
    /// 圆形区域是否拥有某tags
    /// </summary>
    /// <param name="area"> 区域 </param>
    /// <param name="tag"> tag </param>
    /// <returns>布尔值</returns>
    public static extern bool? if_cir_area_has_tag(Area area,string tag);

    /// <summary>
    /// 矩形区域是否拥有某tags
    /// </summary>
    /// <param name="area"> 区域 </param>
    /// <param name="tag"> tag </param>
    /// <returns>布尔值</returns>
    public static extern bool? if_rect_area_has_tag(Area area,string tag);

    /// <summary>
    /// 路径是否拥有某tags
    /// </summary>
    /// <param name="road"> 路径 </param>
    /// <param name="tag"> tag </param>
    /// <returns>布尔值</returns>
    public static extern bool? if_road_has_tag(Road road,string tag);

    /// <summary>
    /// 根据tag获取对应的圆形区域
    /// </summary>
    /// <param name="tag"> tag </param>
    /// <returns>列表</returns>
    public static extern dynamic get_cir_areas_by_tag(string tag);

    /// <summary>
    /// 根据tag获取对应的矩形区域
    /// </summary>
    /// <param name="tag"> tag </param>
    /// <returns>列表</returns>
    public static extern dynamic get_rect_areas_by_tag(string tag);

    /// <summary>
    /// 根据tag获取对应的不规则区域
    /// </summary>
    /// <param name="tag"> tag </param>
    /// <returns>列表</returns>
    public static extern dynamic get_polygon_areas_by_tag(string tag);

    /// <summary>
    /// 根据tag获取对应的路径
    /// </summary>
    /// <param name="tag"> tag </param>
    /// <returns>列表</returns>
    public static extern dynamic get_roads_by_tag(string tag);

    /// <summary>
    /// 获取不规则区域顶点列表
    /// </summary>
    /// <param name="poly_area"> 不规则区域 </param>
    /// <returns>顶点列表</returns>
    public static extern dynamic get_poly_area_point_list(PolyArea poly_area);

    /// <summary>
    /// 通过路点返回点
    /// </summary>
    /// <param name="road_point"> 路点 </param>
    /// <returns>点</returns>
    public static extern Point get_point_by_road_point(dynamic road_point);

    /// <summary>
    /// 创建矩形区域
    /// </summary>
    /// <param name="point"> 左下方起始点 </param>
    /// <param name="width"> 宽 </param>
    /// <param name="height"> 高 </param>
    /// <returns>矩形区域</returns>
    public static extern RecArea create_new_rec_area(Point point,Fix32 width,Fix32 height);

    /// <summary>
    /// 创建矩形区域
    /// </summary>
    /// <param name="center"> 中心点 </param>
    /// <param name="width"> 宽 </param>
    /// <param name="height"> 高 </param>
    /// <returns>矩形区域</returns>
    public static extern RecArea create_rect_area_by_center(Point center,Fix32 width,Fix32 height);

    /// <summary>
    /// 创建矩形区域
    /// </summary>
    /// <param name="point_begin"> 起始点 </param>
    /// <param name="point_end"> 终点 </param>
    /// <returns>矩形区域</returns>
    public static extern RecArea create_rec_area_from_two_points(Point point_begin,Point point_end);

    /// <summary>
    /// 创建圆形区域
    /// </summary>
    /// <param name="point"> 中心点 </param>
    /// <param name="radius"> 半径 </param>
    /// <returns>圆形区域</returns>
    public static extern CirArea create_new_cir_area(Point point,Fix32 radius);

    /// <summary>
    /// 创建多边形区域
    /// </summary>
    /// <param name="point0"> 点 </param>
    /// <param name="point1"> 点 </param>
    /// <param name="point2"> 点 </param>
    /// <param name="point3"> 点 </param>
    /// <param name="point4"> 点 </param>
    /// <param name="point5"> 点 </param>
    /// <param name="point6"> 点 </param>
    /// <param name="point7"> 点 </param>
    /// <returns>多边形区域</returns>
    public static extern PolyArea create_polygon_area(Point point0,Point point1,Point point2,Point point3,Point point4,Point point5,Point point6,Point point7);

    /// <summary>
    /// 创建多边形区域(新)
    /// </summary>
    /// <param name="point0"> 点 </param>
    /// <param name="point1"> 点 </param>
    /// <param name="point2"> 点 </param>
    /// <param name="point3"> 点 </param>
    /// <param name="point4"> 点 </param>
    /// <param name="point5"> 点 </param>
    /// <param name="point6"> 点 </param>
    /// <param name="point7"> 点 </param>
    /// <param name="point8"> 点 </param>
    /// <param name="point9"> 点 </param>
    /// <param name="point10"> 点 </param>
    /// <param name="point11"> 点 </param>
    /// <param name="point12"> 点 </param>
    /// <returns>多边形区域</returns>
    public static extern PolyArea create_polygon_area_new(Point point0,Point point1,Point point2,Point point3,Point point4,Point point5,Point point6,Point point7,Point point8,Point point9,Point point10,Point point11,Point point12);

    /// <summary>
    /// 设置圆形区域大小
    /// </summary>
    /// <param name="area"> 圆形区域 </param>
    /// <param name="radius"> 半径 </param>
    /// <returns></returns>
    public static extern void set_cir_area_radius(CirArea area,Fix32 radius);

    /// <summary>
    /// 获取圆形区域半径
    /// </summary>
    /// <param name="area"> 圆形区域 </param>
    /// <returns>半径</returns>
    public static extern Fix32 get_circle_area_radius(CirArea area);

    /// <summary>
    /// 获取圆形区域内最小X坐标
    /// </summary>
    /// <param name="area"> 圆形区域 </param>
    /// <returns>最小的X坐标</returns>
    public static extern Fix32 get_circle_area_min_x(CirArea area);

    /// <summary>
    /// 获取圆形区域内最小y坐标
    /// </summary>
    /// <param name="area"> 圆形区域 </param>
    /// <returns>最小的Y坐标</returns>
    public static extern Fix32 get_circle_area_min_y(CirArea area);

    /// <summary>
    /// 获取圆形区域内最大X坐标
    /// </summary>
    /// <param name="area"> 圆形区域 </param>
    /// <returns>最大的X坐标</returns>
    public static extern Fix32 get_circle_area_max_x(CirArea area);

    /// <summary>
    /// 获取圆形区域内最大y坐标
    /// </summary>
    /// <param name="area"> 圆形区域 </param>
    /// <returns>最大的Y坐标</returns>
    public static extern Fix32 get_circle_area_max_y(CirArea area);

    /// <summary>
    /// 设置矩形区域大小
    /// </summary>
    /// <param name="area"> 矩形区域 </param>
    /// <param name="length"> 长 </param>
    /// <param name="width"> 宽 </param>
    /// <returns></returns>
    public static extern void set_rect_area_radius(RecArea area,Fix32 length,Fix32 width);

    /// <summary>
    /// 获取矩形区域内最小X坐标
    /// </summary>
    /// <param name="area"> 矩形区域 </param>
    /// <returns>最小的X坐标</returns>
    public static extern Fix32 get_rect_area_min_x(RecArea area);

    /// <summary>
    /// 获取矩形区域内最小Y坐标
    /// </summary>
    /// <param name="area"> 矩形区域 </param>
    /// <returns>最小的Y坐标</returns>
    public static extern Fix32 get_rect_area_min_y(RecArea area);

    /// <summary>
    /// 获取矩形区域内最大X坐标
    /// </summary>
    /// <param name="area"> 矩形区域 </param>
    /// <returns>最大的X坐标</returns>
    public static extern Fix32 get_rect_area_max_x(RecArea area);

    /// <summary>
    /// 获取矩形区域内最大Y坐标
    /// </summary>
    /// <param name="area"> 矩形区域 </param>
    /// <returns>最大的Y坐标</returns>
    public static extern Fix32 get_rect_area_max_y(RecArea area);

    /// <summary>
    /// 获取可用地图范围
    /// </summary>
    /// <returns>区域</returns>
    public static extern RecArea get_usable_map_range();

    /// <summary>
    /// 通过区域ID返回矩形区域
    /// </summary>
    /// <param name="res_id"> 区域ID </param>
    /// <returns>矩形区域</returns>
    public static extern RecArea get_rec_area_by_res_id(int? res_id);

    /// <summary>
    /// 通过区域ID返回圆形区域
    /// </summary>
    /// <param name="res_id"> 区域ID </param>
    /// <returns>圆形区域</returns>
    public static extern CirArea get_circle_area_by_res_id(int? res_id);

    /// <summary>
    /// 通过区域ID返回自定义多边形区域
    /// </summary>
    /// <param name="res_id"> 区域ID </param>
    /// <returns>多边形区域</returns>
    public static extern PolyArea get_polygon_area_by_res_id(int? res_id);

    /// <summary>
    /// 最近创建的矩形区域
    /// </summary>
    /// <returns>矩形区域</returns>
    public static extern RecArea get_rec_area_last_created();

    /// <summary>
    /// 点是否在矩形区域内
    /// </summary>
    /// <param name="point"> 点 </param>
    /// <param name="area"> 矩形区域 </param>
    /// <returns>点是否在矩形区域内</returns>
    public static extern bool? judge_point_in_rec_area(Point point,RecArea area);

    /// <summary>
    /// 点是否在圆形区域内
    /// </summary>
    /// <param name="point"> 点 </param>
    /// <param name="area"> 圆形区域 </param>
    /// <returns>点是否在圆形区域内</returns>
    public static extern bool? judge_point_in_cir_area(Point point,CirArea area);

    /// <summary>
    /// 点是否在不规则区域内
    /// </summary>
    /// <param name="point"> 点 </param>
    /// <param name="area"> 不规则区域 </param>
    /// <returns>点是否在不规则区域内</returns>
    public static extern bool? judge_point_in_polygon_area(Point point,CirArea area);

    /// <summary>
    /// 通过资源id返回点
    /// </summary>
    /// <param name="res_id"> 资源ID </param>
    /// <returns>点</returns>
    public static extern Point get_point_by_res_id(int? res_id);

    /// <summary>
    /// 获取区域内单位数量
    /// </summary>
    /// <param name="area"> 区域 </param>
    /// <returns>单位数量</returns>
    public static extern int? get_unit_num_in_area(Area area);

    /// <summary>
    /// 矩形区域内单位数量
    /// </summary>
    /// <param name="area"> 矩形区域 </param>
    /// <returns>单位数量</returns>
    public static extern int? get_unit_num_in_rec_area(RecArea area);

    /// <summary>
    /// 圆形区域内单位数量
    /// </summary>
    /// <param name="area"> 圆形区域 </param>
    /// <returns>单位数量</returns>
    public static extern int? get_unit_num_in_cir_area(CirArea area);

    /// <summary>
    /// 不规则区域内单位数量
    /// </summary>
    /// <param name="area"> 不规则区域 </param>
    /// <returns>单位数量</returns>
    public static extern int? get_unit_num_in_poly_area(PolyArea area);

    /// <summary>
    /// 矩形区域内所有未销毁单位单位
    /// </summary>
    /// <param name="area"> 矩形区域 </param>
    /// <returns>单位组</returns>
    public static extern UnitGroup get_unit_group_in_rec_area(RecArea area);

    /// <summary>
    /// 圆形区域内所有未销毁单位
    /// </summary>
    /// <param name="area"> 圆形区域 </param>
    /// <returns>单位组</returns>
    public static extern UnitGroup get_unit_group_in_cir_area(CirArea area);

    /// <summary>
    /// 不规则区域内所有未销毁单位
    /// </summary>
    /// <param name="area"> 不规则区域 </param>
    /// <returns>单位组</returns>
    public static extern UnitGroup get_unit_group_in_poly_area(CirArea area);

    /// <summary>
    /// 矩形区域内所有物品
    /// </summary>
    /// <param name="area"> 矩形区域 </param>
    /// <returns>物品组</returns>
    public static extern ItemGroup get_item_group_in_rec_area(RecArea area);

    /// <summary>
    /// 圆形区域内所有物品
    /// </summary>
    /// <param name="area"> 圆形区域 </param>
    /// <returns>物品组</returns>
    public static extern ItemGroup get_item_group_in_cir_area(CirArea area);

    /// <summary>
    /// 不规则区域内所有物品
    /// </summary>
    /// <param name="area"> 不规则区域 </param>
    /// <returns>物品组</returns>
    public static extern ItemGroup get_item_group_in_poly_area(PolyArea area);

    /// <summary>
    /// 删除区域
    /// </summary>
    /// <param name="area"> 区域 </param>
    /// <returns></returns>
    public static extern void remove_area(Area area);

    /// <summary>
    /// 获得区域天气
    /// </summary>
    /// <param name="area"> 区域 </param>
    /// <returns>天气类型</returns>
    public static extern int? get_area_weather(Area area);

    /// <summary>
    /// 设置区域天气
    /// </summary>
    /// <param name="area"> 区域 </param>
    /// <param name="weather_type"> 天气类型 </param>
    /// <returns></returns>
    public static extern void update_area_weather(Area area,int? weather_type);

    /// <summary>
    /// 设置点碰撞
    /// </summary>
    /// <param name="point"> 点 </param>
    /// <param name="is_add"> 添加/去除 </param>
    /// <param name="ground_channel"> 地面碰撞 </param>
    /// <param name="air_channel"> 飞行碰撞 </param>
    /// <returns></returns>
    public static extern void set_point_collision(Point point,bool? is_add,bool? ground_channel,bool? air_channel);

    /// <summary>
    /// 设置区域碰撞
    /// </summary>
    /// <param name="area"> 区域 </param>
    /// <param name="is_add"> 添加/去除 </param>
    /// <param name="ground_channel"> 地面碰撞 </param>
    /// <param name="air_channel"> 飞行碰撞 </param>
    /// <returns></returns>
    public static extern void set_area_collision(Area area,bool? is_add,bool? ground_channel,bool? air_channel);

    /// <summary>
    /// 编辑区域碰撞
    /// </summary>
    /// <param name="area"> 区域 </param>
    /// <param name="collision_layer"> 碰撞类型 </param>
    /// <param name="is_add"> 添加/去除 </param>
    /// <returns></returns>
    public static extern void edit_area_collision(Area area,int? collision_layer,bool? is_add);

    /// <summary>
    /// 编辑区域视野阻挡
    /// </summary>
    /// <param name="area"> 区域 </param>
    /// <param name="fov_block_type"> 视野阻挡类型 </param>
    /// <param name="is_add"> 添加/去除 </param>
    /// <returns></returns>
    public static extern void edit_area_fov_block(Area area,int? fov_block_type,bool? is_add);

    /// <summary>
    /// 设置全局天气
    /// </summary>
    /// <param name="weather_type"> 天气类型 </param>
    /// <returns></returns>
    public static extern void update_global_weather(int? weather_type);

    /// <summary>
    /// 获得全局天气
    /// </summary>
    /// <returns>天气类型</returns>
    public static extern int? get_global_weather();

    /// <summary>
    /// 打开技能指示器
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="ability"> 技能 </param>
    /// <returns></returns>
    public static extern void start_skill_pointer(Role role,Ability ability);

    /// <summary>
    /// 关闭技能指示器
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="ability"> 技能 </param>
    /// <returns></returns>
    public static extern void stop_skill_pointer(Role role,Ability ability);

    /// <summary>
    /// 打开技能指示器
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="ability"> 技能 </param>
    /// <returns></returns>
    public static extern void create_preview_skill_pointer(Role role,Ability ability);

    /// <summary>
    /// 关闭技能指示器
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <returns></returns>
    public static extern void clear_preview_skill_pointer(Role role);

    /// <summary>
    /// 技能类型指示器
    /// </summary>
    /// <param name="ability_id"> 技能ID </param>
    /// <returns>指示器类型</returns>
    public static extern int? get_ability_key_skill_pointer(int? ability_id);

    /// <summary>
    /// 发送信号
    /// </summary>
    /// <param name="role_or_role_id"> 玩家ID </param>
    /// <param name="signal_type"> 信号类型 </param>
    /// <param name="world_pos"> 位置 </param>
    /// <param name="visible_type"> 显示类型 </param>
    /// <returns></returns>
    public static extern void send_signal(int? role_or_role_id,int? signal_type,Point world_pos,int? visible_type);

    /// <summary>
    /// 根据点光源ID返回点光源
    /// </summary>
    /// <param name="res_id"> 光源ID </param>
    /// <returns>点光源</returns>
    public static extern PointLight get_point_light_res_by_res_id(int? res_id);

    /// <summary>
    /// 根据方向光源ID返回方向光源
    /// </summary>
    /// <param name="res_id"> 光源ID </param>
    /// <returns>方向光源</returns>
    public static extern SpotLight get_spot_light_res_by_res_id(int? res_id);

    /// <summary>
    /// 创建点光源到点
    /// </summary>
    /// <param name="point"> 点 </param>
    /// <param name="offset_y"> 偏移高度 </param>
    /// <returns>点光源</returns>
    public static extern PointLight create_point_light_to_point(Point point,Fix32 offset_y);

    /// <summary>
    /// 创建点光源到单位绑点
    /// </summary>
    /// <param name="unit"> 单位 </param>
    /// <param name="socket_name"> 挂节点 </param>
    /// <param name="offset_y"> 偏移高度 </param>
    /// <returns>点光源</returns>
    public static extern PointLight create_point_light_to_unit_socket(Unit unit,string socket_name,Fix32 offset_y);

    /// <summary>
    /// 创建方向光源到点
    /// </summary>
    /// <param name="point"> 点 </param>
    /// <param name="pos_offset_y"> 起点偏移高度 </param>
    /// <param name="target"> 朝向目标 </param>
    /// <param name="target_offset_y"> 朝向目标偏移高度 </param>
    /// <returns>方向光源</returns>
    public static extern SpotLight create_spot_light_to_point(Point point,Fix32 pos_offset_y,dynamic target,Fix32 target_offset_y);

    /// <summary>
    /// 创建方向光源到单位绑点
    /// </summary>
    /// <param name="unit"> 单位 </param>
    /// <param name="socket_name"> 挂节点 </param>
    /// <param name="pos_offset_y"> 起点偏移高度 </param>
    /// <param name="target"> 朝向目标 </param>
    /// <param name="target_offset_y"> 朝向目标偏移高度 </param>
    /// <returns>方向光源</returns>
    public static extern SpotLight create_spot_light_to_unit_socket(Unit unit,string socket_name,Fix32 pos_offset_y,dynamic target,Fix32 target_offset_y);

    /// <summary>
    /// 删除光源
    /// </summary>
    /// <param name="light"> 光源 </param>
    /// <returns></returns>
    public static extern void remove_light(Light light);

    /// <summary>
    /// 设置光源Float属性
    /// </summary>
    /// <param name="light"> 光源 </param>
    /// <param name="attr_name"> 属性名 </param>
    /// <param name="value"> 值 </param>
    /// <returns></returns>
    public static extern void set_light_float_attr_value(Light light,string attr_name,Fix32 value);

    /// <summary>
    /// 获取光源Float属性
    /// </summary>
    /// <param name="light"> 光源 </param>
    /// <param name="attr_name"> 属性名 </param>
    /// <returns>值</returns>
    public static extern Fix32 get_light_float_attr_value(Light light,string attr_name);

    /// <summary>
    /// 设置光源是否产生阴影
    /// </summary>
    /// <param name="light"> 光源 </param>
    /// <param name="value"> 值 </param>
    /// <returns></returns>
    public static extern void set_light_cast_shadow_attr_value(Light light,bool? value);

    /// <summary>
    /// 获取光源是否产生阴影
    /// </summary>
    /// <param name="light"> 光源 </param>
    /// <returns>值</returns>
    public static extern bool? get_light_cast_shadow_attr_value(Light light);

    /// <summary>
    /// 根据局部雾ID返回局部雾
    /// </summary>
    /// <param name="res_id"> 雾ID </param>
    /// <returns>雾</returns>
    public static extern Fog get_fog_res_by_res_id(int? res_id);

    /// <summary>
    /// 修改雾效属性
    /// </summary>
    /// <param name="fog"> 雾 </param>
    /// <param name="op_flag"> 默认参数 </param>
    /// <param name="yaw"> 朝向 </param>
    /// <param name="pos_x"> 位置x </param>
    /// <param name="pos_y"> 位置y </param>
    /// <param name="pos_z"> 位置z </param>
    /// <param name="scale_x"> 缩放x </param>
    /// <param name="scale_y"> 缩放y </param>
    /// <param name="scale_z"> 缩放z </param>
    /// <param name="color_r"> 颜色r </param>
    /// <param name="color_g"> 颜色g </param>
    /// <param name="color_b"> 颜色b </param>
    /// <param name="density"> 浓度 </param>
    /// <param name="flow_speed"> 流速 </param>
    /// <returns></returns>
    public static extern void set_fog_attr(Fog fog,int? op_flag,double? yaw,double? pos_x,double? pos_y,double? pos_z,double? scale_x,double? scale_y,double? scale_z,double? color_r,double? color_g,double? color_b,double? density,double? flow_speed);

    /// <summary>
    /// 获取固定单位编号的单位组
    /// </summary>
    /// <param name="unit_key"> 单位编号 </param>
    /// <returns>单位组</returns>
    public static extern UnitGroup get_units_by_key(int? unit_key);

    /// <summary>
    /// 单位组内随机整数个单位
    /// </summary>
    /// <param name="units"> 单位组 </param>
    /// <param name="n"> 随机个数 </param>
    /// <returns>随机的单位组</returns>
    public static extern UnitGroup get_random_n_unit_in_group(UnitGroup units,int? n);

    /// <summary>
    /// 单位组内第一个单位
    /// </summary>
    /// <param name="units"> 单位组 </param>
    /// <returns>第一个单位</returns>
    public static extern Unit get_first_unit_in_group(UnitGroup units);

    /// <summary>
    /// 单位组内最后一个单位
    /// </summary>
    /// <param name="units"> 单位组 </param>
    /// <returns>最后一个单位</returns>
    public static extern Unit get_last_unit_in_group(UnitGroup units);

    /// <summary>
    /// 根据属性值从单位组中取整数个单位
    /// </summary>
    /// <param name="units"> 单位组 </param>
    /// <param name="attr"> 属性 </param>
    /// <param name="rise"> 是否升序排列 </param>
    /// <param name="num"> 单位个数 </param>
    /// <returns>单位组</returns>
    public static extern UnitGroup get_unit_sort_by_attr(UnitGroup units,string attr,bool? rise,int? num);

    /// <summary>
    /// 根据距离从单位组中取整数个单位
    /// </summary>
    /// <param name="units"> 单位组 </param>
    /// <param name="point"> 点 </param>
    /// <param name="rise"> 是否升序排列 </param>
    /// <param name="num"> 单位个数 </param>
    /// <returns>单位组</returns>
    public static extern UnitGroup get_unit_sort_by_position(UnitGroup units,Point point,bool? rise,int? num);

    /// <summary>
    /// 单位组内随机一个单位
    /// </summary>
    /// <param name="units"> 单位组 </param>
    /// <returns>单位</returns>
    public static extern Unit get_random_unit_in_unit_group(UnitGroup units);

    /// <summary>
    /// 技能类型是否受冷却缩减影响
    /// </summary>
    /// <param name="ability_id"> 技能类型 </param>
    /// <returns>布尔值</returns>
    public static extern bool? api_get_influenced_by_cd_reduce(int? ability_id);

    /// <summary>
    /// 技能类型的字符串属性
    /// </summary>
    /// <param name="ability_id"> 技能类型 </param>
    /// <param name="attr_name"> 字符串属性 </param>
    /// <returns>字符串</returns>
    public static extern string get_ability_conf_str_attr(int? ability_id,string attr_name);

    /// <summary>
    /// 技能类型的布尔属性
    /// </summary>
    /// <param name="ability_id"> 技能类型 </param>
    /// <param name="attr_name"> 布尔属性 </param>
    /// <returns>布尔属性</returns>
    public static extern bool? get_ability_conf_bool_attr(int? ability_id,string attr_name);

    /// <summary>
    /// 技能类型的实数属性
    /// </summary>
    /// <param name="ability_id"> 技能类型 </param>
    /// <param name="attr_name"> 实数属性 </param>
    /// <returns>实数</returns>
    public static extern Fix32 get_ability_conf_float_attr(int? ability_id,string attr_name);

    /// <summary>
    /// 技能类型的整数属性
    /// </summary>
    /// <param name="ability_id"> 技能类型 </param>
    /// <param name="attr_name"> 整数属性 </param>
    /// <returns>实数</returns>
    public static extern int? get_ability_conf_int_attr(int? ability_id,string attr_name);

    /// <summary>
    /// 技能类型的公式属性
    /// </summary>
    /// <param name="ability_id"> 技能类型 </param>
    /// <param name="attr_name"> 公式属性 </param>
    /// <param name="level"> 当前等级 </param>
    /// <param name="stack_count"> 当前充能层数 </param>
    /// <param name="unit_hp_max"> 施法者最大生命值 </param>
    /// <param name="unit_hp_cur"> 施法者当前生命值 </param>
    /// <returns>实数</returns>
    public static extern Fix32 get_ability_conf_formula_attr(int? ability_id,string attr_name,int? level,int? stack_count,Fix32 unit_hp_max,Fix32 unit_hp_cur);

    /// <summary>
    /// 技能类型的公式属性
    /// </summary>
    /// <param name="ability_id"> 技能类型 </param>
    /// <param name="attr_name"> 公式属性 </param>
    /// <param name="level"> 当前等级 </param>
    /// <param name="stack_count"> 当前充能层数 </param>
    /// <param name="unit"> 施法计算单位 </param>
    /// <param name="return_cm"> 是否返回cm </param>
    /// <returns>实数</returns>
    public static extern Fix32 get_ability_conf_formula_attr_with_unit(int? ability_id,string attr_name,int? level,int? stack_count,Unit unit,bool? return_cm);

    /// <summary>
    /// 技能选取的目标单位
    /// </summary>
    /// <param name="ability"> 技能 </param>
    /// <param name="runtime_id"> runtime_id </param>
    /// <returns>单位</returns>
    public static extern Unit get_target_unit_in_ability(Ability ability,int? runtime_id);

    /// <summary>
    /// 技能选取的目标物品
    /// </summary>
    /// <param name="ability"> 技能 </param>
    /// <param name="runtime_id"> runtime_id </param>
    /// <returns>物品</returns>
    public static extern Item get_target_item_in_ability(Ability ability,int? runtime_id);

    /// <summary>
    /// 技能选取的目标可破坏物
    /// </summary>
    /// <param name="ability"> 技能 </param>
    /// <param name="runtime_id"> runtime_id </param>
    /// <returns>可破坏物</returns>
    public static extern Destructible get_target_dest_in_ability(Ability ability,int? runtime_id);

    /// <summary>
    /// 筛选范围内单位(废弃)
    /// </summary>
    /// <param name="pos"> 坐标 </param>
    /// <param name="shape"> 形状 </param>
    /// <returns>单位组</returns>
    public static extern UnitGroup filter_unit_id_list_in_area(Point pos,Shape shape);

    /// <summary>
    /// 筛选范围内单位
    /// </summary>
    /// <param name="pos"> 坐标 </param>
    /// <param name="shape"> 形状 </param>
    /// <param name="belong_role_group"> 属于玩家或玩家组 </param>
    /// <param name="visible_role"> 对玩家可见 </param>
    /// <param name="invisible_role"> 对玩家不可见 </param>
    /// <param name="exclude_unit_group"> 不在单位组内 </param>
    /// <param name="with_tag"> 具有标签 </param>
    /// <param name="without_tag"> 不具有标签 </param>
    /// <param name="entity_no"> 单位名称 </param>
    /// <param name="exclude_unit"> 排除单位 </param>
    /// <param name="unit_type"> 单位种类 </param>
    /// <param name="in_state"> 具有状态 </param>
    /// <param name="not_in_state"> 不具有状态 </param>
    /// <param name="include_dead"> 是否包括死亡单位 </param>
    /// <param name="max_count"> 数量上限 </param>
    /// <param name="sort_type"> 排序类型 </param>
    /// <returns>单位组</returns>
    public static extern UnitGroup filter_unit_id_list_in_area_v2(Point pos,Shape shape,Role belong_role_group,Role visible_role,Role invisible_role,UnitGroup exclude_unit_group,string with_tag,string without_tag,int? entity_no,Unit exclude_unit,int? unit_type,int? in_state,int? not_in_state,bool? include_dead,int? max_count,int? sort_type);

    /// <summary>
    /// 筛选范围内投射物
    /// </summary>
    /// <param name="pos"> 坐标 </param>
    /// <param name="shape"> 形状 </param>
    /// <param name="sort_type"> 排序类型 </param>
    /// <returns>投射物组</returns>
    public static extern ProjectileGroup filter_projectile_id_list_in_area(Point pos,Shape shape,int? sort_type);

    /// <summary>
    /// 筛选带有tag的投射物
    /// </summary>
    /// <param name="tag"> tag </param>
    /// <returns>投射物组</returns>
    public static extern ProjectileGroup get_all_projectiles_with_tag(string tag);

    /// <summary>
    /// 按阵营编号获取阵营对象
    /// </summary>
    /// <param name="camp_id"> 阵营编号 </param>
    /// <returns>阵营对象</returns>
    public static extern Camp get_camp_by_camp_id(int? camp_id);

    /// <summary>
    /// 按玩家编号获取阵营编号
    /// </summary>
    /// <param name="role_id"> 玩家编号 </param>
    /// <returns>阵营编号</returns>
    public static extern Camp get_camp_id_by_role_id(int? role_id);

    /// <summary>
    /// 按玩家编号获取玩家对象
    /// </summary>
    /// <param name="role_id"> 玩家编号 </param>
    /// <returns>玩家</returns>
    public static extern Role get_role_by_role_id(int? role_id);

    /// <summary>
    /// 按整型获取玩家对象
    /// </summary>
    /// <param name="role_id"> 玩家编号 </param>
    /// <returns>玩家</returns>
    public static extern Role get_role_by_int(int? role_id);

    /// <summary>
    /// 获取阵营存活单位数量
    /// </summary>
    /// <param name="camp_id"> 阵营编号 </param>
    /// <returns>单位数量</returns>
    public static extern int? get_alive_unit_num_by_camp_id(int? camp_id);

    /// <summary>
    /// 所有玩家
    /// </summary>
    /// <returns>玩家组</returns>
    public static extern RoleGroup get_all_role_ids();

    /// <summary>
    /// 阵营所有玩家
    /// </summary>
    /// <param name="camp"> 阵营对象 </param>
    /// <returns>玩家组</returns>
    public static extern RoleGroup get_role_ids_by_camp(Camp camp);

    /// <summary>
    /// 特定类型玩家
    /// </summary>
    /// <param name="role_type"> 玩家类型 </param>
    /// <returns>玩家组</returns>
    public static extern RoleGroup get_role_ids_by_type(int? role_type);

    /// <summary>
    /// 同盟玩家
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <returns>玩家组</returns>
    public static extern RoleGroup get_ally_ids_by_role(Role role);

    /// <summary>
    /// 获取某玩家敌对玩家组
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <returns>玩家组</returns>
    public static extern RoleGroup get_enemy_ids_by_role(Role role);

    /// <summary>
    /// 获取获胜玩家组
    /// </summary>
    /// <returns>玩家组</returns>
    public static extern RoleGroup get_victorious_role_ids();

    /// <summary>
    /// 获取失利玩家组
    /// </summary>
    /// <returns>玩家组</returns>
    public static extern RoleGroup get_defeated_role_ids();

    /// <summary>
    /// 三维属性是否开启
    /// </summary>
    /// <returns>是否开启</returns>
    public static extern bool? api_if_pri_attr_state_open();

    /// <summary>
    /// 判断单位敌对关系
    /// </summary>
    /// <param name="unit1"> 单位 </param>
    /// <param name="unit2"> 单位 </param>
    /// <returns>是否敌对</returns>
    public static extern bool? is_enemy(Unit unit1,Unit unit2);

    /// <summary>
    /// 判断单位友军关系
    /// </summary>
    /// <param name="unit1"> 单位 </param>
    /// <param name="unit2"> 单位 </param>
    /// <returns>是否友军</returns>
    public static extern bool? is_ally(Unit unit1,Unit unit2);

    /// <summary>
    /// 玩家或单位是否拥有单位的可见性
    /// </summary>
    /// <param name="role_or_unit"> 玩家 </param>
    /// <param name="unit"> 单位 </param>
    /// <returns>是否可见</returns>
    public static extern bool? get_visibility_of_unit(Role role_or_unit,Unit unit);

    /// <summary>
    /// 玩家是否加入游戏
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <returns>玩家是否加入游戏</returns>
    public static extern bool? role_in_game(Role role);

    /// <summary>
    /// 玩家是否拥有收费道具
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="no"> 收费道具key </param>
    /// <returns>玩家是否拥有收费道具</returns>
    public static extern bool? role_has_store_item(Role role,int? no);

    /// <summary>
    /// 玩家下载存档是否回调
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <returns>玩家下载存档是否回调</returns>
    public static extern bool? has_download_save_data_callback(Role role);

    /// <summary>
    /// 获取最近创建的物品
    /// </summary>
    /// <returns>物品对象</returns>
    public static extern Item get_last_created_item();

    /// <summary>
    /// 创建物品
    /// </summary>
    /// <param name="position"> 位置 </param>
    /// <param name="num"> 数量 </param>
    /// <param name="eid"> 物品编号 </param>
    /// <param name="player"> 所属玩家 </param>
    /// <returns></returns>
    public static extern void create_items(Point position,int? num,int? eid,Role player);

    /// <summary>
    /// 根据id获取物品
    /// </summary>
    /// <param name="id"> 物品ID </param>
    /// <returns>物品</returns>
    public static extern Item get_item(int? id);

    /// <summary>
    /// 根据物品id获取物品
    /// </summary>
    /// <param name="item_unit_id"> unit_id </param>
    /// <returns>物品</returns>
    public static extern Item get_item_by_unit_id(int? item_unit_id);

    /// <summary>
    /// 获取物品配置名称
    /// </summary>
    /// <param name="key"> item_id </param>
    /// <returns>物品名称</returns>
    public static extern string get_item_conf_name(int? key);

    /// <summary>
    /// 创建单个物品
    /// </summary>
    /// <param name="position"> 位置 </param>
    /// <param name="item_key"> 物品编号 </param>
    /// <param name="player"> 所属玩家 </param>
    /// <returns>创建出的物品</returns>
    public static extern Item create_item_by_id(Point position,int? item_key,Role player);

    /// <summary>
    /// 根据ID获取图片
    /// </summary>
    /// <param name="icon_id"> 图片ID </param>
    /// <returns>图片</returns>
    public static extern int? get_texture_by_icon_id(int? icon_id);

    /// <summary>
    /// 根据图片获取ID
    /// </summary>
    /// <param name="texture"> 图片 </param>
    /// <returns>图片ID</returns>
    public static extern int? get_icon_id_by_texture(int? texture);

    /// <summary>
    /// 刷新触发器
    /// </summary>
    /// <returns></returns>
    public static extern void refresh_triggers();

    /// <summary>
    /// 激活Lua动态触发器
    /// </summary>
    /// <param name="lua_conf"> Lua触发器 </param>
    /// <returns></returns>
    public static extern void enable_global_lua_trigger(dynamic lua_conf);

    /// <summary>
    /// 根据预设id获取可破坏物
    /// </summary>
    /// <param name="dest_unit_id"> 预设可破坏物unit_id </param>
    /// <returns>可破坏物</returns>
    public static extern Destructible get_dest_by_id(int? dest_unit_id);

    /// <summary>
    /// 获取可破坏物类型
    /// </summary>
    /// <param name="dest"> 可破坏物 </param>
    /// <returns>可破坏物类型</returns>
    public static extern int? get_dest_type(Destructible dest);

    /// <summary>
    /// 判断可破坏物是否在区域中
    /// </summary>
    /// <param name="dest_id"> 可破坏物 </param>
    /// <param name="area"> 区域 </param>
    /// <returns>布尔值</returns>
    public static extern bool? is_dest_in_area(Destructible dest_id,Area area);

    /// <summary>
    /// 创建可破坏物
    /// </summary>
    /// <param name="location"> 位置 </param>
    /// <param name="dest_key"> 物品编号 </param>
    /// <param name="angle"> 面向角度 </param>
    /// <param name="size"> 大小 </param>
    /// <returns>创建出的可破坏物</returns>
    public static extern Destructible create_destructible(Point location,int? dest_key,Fix32 angle,double? size);

    /// <summary>
    /// 创建可破坏物
    /// </summary>
    /// <param name="dest_key"> 物品编号 </param>
    /// <param name="location"> 位置 </param>
    /// <param name="angle"> 面向角度 </param>
    /// <param name="scale_x"> 缩放x </param>
    /// <param name="scale_y"> 缩放y </param>
    /// <param name="scale_z"> 缩放z </param>
    /// <param name="height_offset"> 高度 </param>
    /// <returns>创建出的可破坏物</returns>
    public static extern Destructible create_destructible_new(int? dest_key,Point location,Fix32 angle,Fix32 scale_x,Fix32 scale_y,Fix32 scale_z,Fix32 height_offset);

    /// <summary>
    /// 获取区域内的可破坏物列表
    /// </summary>
    /// <param name="area"> 区域对象 </param>
    /// <param name="sort_type"> 筛选规则 </param>
    /// <returns>可破坏物列表</returns>
    public static extern dynamic get_all_dest_in_area(Area area,int? sort_type);

    /// <summary>
    /// 获取点范围内的可破坏物列表
    /// </summary>
    /// <param name="point"> 区域对象 </param>
    /// <param name="rng"> 半径 </param>
    /// <returns>可破坏物列表</returns>
    public static extern dynamic get_all_dest_in_point_rng(Point point,double? rng);

    /// <summary>
    /// 获取不同形状范围内的可破坏物列表
    /// </summary>
    /// <param name="point"> 区域对象 </param>
    /// <param name="shape"> 形状 </param>
    /// <param name="sort_type"> 筛选规则 </param>
    /// <returns>可破坏物列表</returns>
    public static extern dynamic get_all_dest_in_shapes(Point point,Shape shape,int? sort_type);

    /// <summary>
    /// 创建镜头
    /// </summary>
    /// <param name="focus_point"> 点 </param>
    /// <param name="dis"> 焦距 </param>
    /// <param name="focus_y"> 焦点高度 </param>
    /// <param name="yaw"> yaw </param>
    /// <param name="pitch"> pitch </param>
    /// <param name="fov"> fov </param>
    /// <returns>镜头ID</returns>
    public static extern int? add_camera_conf(Point focus_point,double? dis,double? focus_y,double? yaw,double? pitch,double? fov);

    /// <summary>
    /// 应用镜头配置
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="conf_id"> 镜头配置 </param>
    /// <param name="duration"> 过渡时间 </param>
    /// <param name="slope_mode"> 镜头移动类型 </param>
    /// <returns></returns>
    public static extern void apply_camera_conf(Role role,Camera conf_id,double? duration,int? slope_mode);

    /// <summary>
    /// 线性移动镜头(时间)
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="point"> 点 </param>
    /// <param name="duration"> 持续时间 </param>
    /// <param name="acc"> 加速度 </param>
    /// <returns></returns>
    public static extern void camera_linear_move_duration(Role role,Point point,Fix32 duration,int? acc);

    /// <summary>
    /// 线性移动镜头(初速度)
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="point"> 点 </param>
    /// <param name="speed"> 初速度 </param>
    /// <param name="acc"> 加速度 </param>
    /// <returns></returns>
    public static extern void camera_linear_move_speed(Role role,Point point,Fix32 speed,int? acc);

    /// <summary>
    /// 让镜头看向某点（镜头位置不变）
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="point"> 点 </param>
    /// <param name="move_time"> 时间 </param>
    /// <returns></returns>
    public static extern void camera_look_at(Role role,Point point,Fix32 move_time);

    /// <summary>
    /// 设置镜头参数roll
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="roll"> 滚动角 </param>
    /// <param name="move_time"> 时间 </param>
    /// <returns></returns>
    public static extern void camera_set_param_roll(Role role,Fix32 roll,Fix32 move_time);

    /// <summary>
    /// 设置镜头参数pitch
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="pitch"> 俯仰角 </param>
    /// <param name="move_time"> 时间 </param>
    /// <returns></returns>
    public static extern void camera_set_param_pitch(Role role,Fix32 pitch,Fix32 move_time);

    /// <summary>
    /// 设置镜头参数yaw
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="yaw"> 导航角 </param>
    /// <param name="move_time"> 时间 </param>
    /// <returns></returns>
    public static extern void camera_set_param_yaw(Role role,Fix32 yaw,Fix32 move_time);

    /// <summary>
    /// 设置镜头角度参数
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="rotate_type"> 角度类型 </param>
    /// <param name="angle"> 角度值 </param>
    /// <param name="move_time"> 时间 </param>
    /// <returns></returns>
    public static extern void camera_set_param_rotate(Role role,int? rotate_type,Fix32 angle,Fix32 move_time);

    /// <summary>
    /// 设置玩家的声音接收器跟随镜头射线与地面焦点
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="camera_ray_direction"> 相机射线方向 </param>
    /// <returns></returns>
    public static extern void set_player_listener_to_follow_intersection_of_camera_ray_and_ground(Role role,CameraRayDirection camera_ray_direction);

    /// <summary>
    /// 设置玩家的声音接收器跟随单位
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="unit"> 单位 </param>
    /// <returns></returns>
    public static extern void set_player_listener_to_follow_unit(Role role,Unit unit);

    /// <summary>
    /// 设置镜头参数distance
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="distance"> 焦点距离 </param>
    /// <param name="move_time"> 时间 </param>
    /// <returns></returns>
    public static extern void camera_set_param_distance(Role role,Fix32 distance,Fix32 move_time);

    /// <summary>
    /// 旋转镜头俯仰角（角度，时间）
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="angle"> 角度 </param>
    /// <param name="duration"> 时间 </param>
    /// <returns></returns>
    public static extern void camera_rotate_pitch_angle_duration(Role role,Fix32 angle,Fix32 duration);

    /// <summary>
    /// 旋转镜头俯仰角（角速度，时间）
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="angle_speed"> 角速度 </param>
    /// <param name="duration"> 时间 </param>
    /// <returns></returns>
    public static extern void camera_rotate_pitch_speed_duration(Role role,Fix32 angle_speed,Fix32 duration);

    /// <summary>
    /// 旋转镜头俯仰角（角速度，角度）
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="angle_speed"> 角速度 </param>
    /// <param name="angle"> 角度 </param>
    /// <returns></returns>
    public static extern void camera_rotate_pitch_speed_angle(Role role,Fix32 angle_speed,Fix32 angle);

    /// <summary>
    /// 旋转镜头导航角（角度，时间）
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="angle"> 角度 </param>
    /// <param name="duration"> 时间 </param>
    /// <returns></returns>
    public static extern void camera_rotate_yaw_angle_duration(Role role,Fix32 angle,Fix32 duration);

    /// <summary>
    /// 旋转镜头导航角（角速度，时间）
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="angle_speed"> 角速度 </param>
    /// <param name="duration"> 时间 </param>
    /// <returns></returns>
    public static extern void camera_rotate_yaw_speed_duration(Role role,Fix32 angle_speed,Fix32 duration);

    /// <summary>
    /// 旋转镜头导航角（角速度，角度）
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="angle_speed"> 角速度 </param>
    /// <param name="angle"> 角度 </param>
    /// <returns></returns>
    public static extern void camera_rotate_yaw_speed_angle(Role role,Fix32 angle_speed,Fix32 angle);

    /// <summary>
    /// 旋转镜头滚角（角度，时间）
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="angle"> 角度 </param>
    /// <param name="duration"> 时间 </param>
    /// <returns></returns>
    public static extern void camera_rotate_roll_angle_duration(Role role,Fix32 angle,Fix32 duration);

    /// <summary>
    /// 旋转镜头滚角（角速度，时间）
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="angle_speed"> 角速度 </param>
    /// <param name="duration"> 时间 </param>
    /// <returns></returns>
    public static extern void camera_rotate_roll_speed_duration(Role role,Fix32 angle_speed,Fix32 duration);

    /// <summary>
    /// 旋转镜头滚角（角速度，角度）
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="angle_speed"> 角速度 </param>
    /// <param name="angle"> 角度 </param>
    /// <returns></returns>
    public static extern void camera_rotate_roll_speed_angle(Role role,Fix32 angle_speed,Fix32 angle);

    /// <summary>
    /// 镜头摇晃xy
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="amplitude"> 摇晃幅度 </param>
    /// <param name="speed"> 摇晃速率 </param>
    /// <param name="duration"> 持续时间 </param>
    /// <param name="t"> 摇晃方式 </param>
    /// <returns></returns>
    public static extern void camera_shake_xy(Role role,Fix32 amplitude,Fix32 speed,Fix32 duration,int? t);

    /// <summary>
    /// 镜头摇晃z
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="amplitude"> 摇晃幅度 </param>
    /// <param name="speed"> 摇晃速率 </param>
    /// <param name="duration"> 持续时间 </param>
    /// <returns></returns>
    public static extern void camera_shake_z(Role role,Fix32 amplitude,Fix32 speed,Fix32 duration);

    /// <summary>
    /// 镜头摇晃xy
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="amplitude"> 摇晃幅度 </param>
    /// <param name="speed"> 摇晃速率 </param>
    /// <param name="duration"> 持续时间 </param>
    /// <param name="shake_mode"> 摇晃方式 </param>
    /// <returns></returns>
    public static extern void camera_shake(Role role,Fix32 amplitude,Fix32 speed,Fix32 duration,int? shake_mode);

    /// <summary>
    /// 镜头带衰减震动
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="amplitude"> 震动幅度 </param>
    /// <param name="decay"> 衰减速率 </param>
    /// <param name="frequency"> 频率 </param>
    /// <param name="duration"> 持续时间 </param>
    /// <param name="shake_type"> 震动方式 </param>
    /// <returns></returns>
    public static extern void camera_shake_with_decay(Role role,Fix32 amplitude,Fix32 decay,Fix32 frequency,Fix32 duration,int? shake_type);

    /// <summary>
    /// 镜头限制移动区域
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="area"> 限制区域 </param>
    /// <returns></returns>
    public static extern void camera_limit_area(Role role,Area area);

    /// <summary>
    /// 镜头限制移动区域
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <returns></returns>
    public static extern void camera_limit_area_close(Role role);

    /// <summary>
    /// 镜头跟随某个单位
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="unit"> 跟随单位 </param>
    /// <param name="offset_x"> 偏移距离x </param>
    /// <param name="offset_y"> 偏移距离y </param>
    /// <param name="offset_height"> 偏移高度 </param>
    /// <returns></returns>
    public static extern void camera_set_follow_unit(Role role,Unit unit,double? offset_x,double? offset_y,double? offset_height);

    /// <summary>
    /// 镜头tps跟随某个单位
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="unit"> 跟随单位 </param>
    /// <param name="sensitive"> 灵敏度 </param>
    /// <param name="pitch"> 俯仰角 </param>
    /// <param name="yaw"> 偏航角 </param>
    /// <param name="offset_x"> 偏移距离x </param>
    /// <param name="offset_y"> 偏移距离y </param>
    /// <param name="offset_z"> 偏移高度 </param>
    /// <param name="distance"> 摄像机距离 </param>
    /// <returns></returns>
    public static extern void camera_set_tps_follow_unit(Role role,Unit unit,double? sensitive,double? pitch,double? yaw,double? offset_x,double? offset_y,double? offset_z,double? distance);

    /// <summary>
    /// 取消镜头tps跟随单位
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <returns></returns>
    public static extern void camera_cancel_tps_follow_unit(Role role);

    /// <summary>
    /// 将玩家相机解除绑定
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <returns></returns>
    public static extern void camera_cancel_follow_unit(Role role);

    /// <summary>
    /// 本地镜头在跟随状态
    /// </summary>
    /// <returns>是否跟随</returns>
    public static extern bool? camera_is_following_target();

    /// <summary>
    /// 设置玩家镜头焦点高度
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="y"> 高度 </param>
    /// <param name="move_time"> 时间 </param>
    /// <returns></returns>
    public static extern void camera_set_focus_y(Role role,Fix32 y,Fix32 move_time);

    /// <summary>
    /// 设置玩家相机允许移动
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <returns></returns>
    public static extern void camera_set_move_enable(Role role);

    /// <summary>
    /// 设置玩家相机禁止移动
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <returns></returns>
    public static extern void camera_set_move_not_enable(Role role);

    /// <summary>
    /// 玩家镜头是否正在播放动画
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <returns>是否播放动画</returns>
    public static extern bool? is_cameraIS_playing_timeline(Role role);

    /// <summary>
    /// 播放镜头动画
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="camline_id"> 镜头TimelineID </param>
    /// <returns></returns>
    public static extern void play_camera_timeline(Role role,int? camline_id);

    /// <summary>
    /// 停止播放镜头动画
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <returns></returns>
    public static extern void stop_camera_timeline(Role role);

    /// <summary>
    /// 设置第三人称跟随镜头鼠标控制开关
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="enable"> 开关 </param>
    /// <returns></returns>
    public static extern void set_tps_mode_ctrl(Role role,bool? enable);

    /// <summary>
    /// 设置镜头是否跟随地形高度浮动
    /// </summary>
    /// <param name="enable"> 开关 </param>
    /// <param name="detect_range"> 检测范围 </param>
    /// <returns></returns>
    public static extern void set_camera_floating_with_terrain(bool? enable,int? detect_range);

    /// <summary>
    /// 获取本地玩家镜头的实数属性
    /// </summary>
    /// <param name="attr_name"> 属性名 </param>
    /// <returns>属性值</returns>
    public static extern double? get_camera_attr_real_num(string attr_name);

    /// <summary>
    /// 获取本地玩家镜头的整数属性
    /// </summary>
    /// <param name="attr_name"> 属性名 </param>
    /// <returns>属性值</returns>
    public static extern int? get_camera_attr_integer(string attr_name);

    /// <summary>
    /// 向玩家正上方显示提示信息
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="seconds"> 持续时间 </param>
    /// <param name="text"> 信息 </param>
    /// <param name="localize"> 多语言转化 </param>
    /// <returns></returns>
    public static extern void api_show_text(Role role,double? seconds,string text,bool? localize);

    /// <summary>
    /// 向玩家显示多语言信息
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="text"> 显示信息 </param>
    /// <param name="second"> 持续时间, 单位秒 </param>
    /// <param name="localize"> 多语言转化 </param>
    /// <returns></returns>
    public static extern void show_tips_text(Role role,string text,Fix32 second,bool? localize);

    /// <summary>
    /// API测试记录日志并可选显示
    /// </summary>
    /// <param name="text"> 信息 </param>
    /// <param name="seconds"> 持续时间, 单位秒 </param>
    /// <param name="show"> 是否在屏幕显示 </param>
    /// <returns></returns>
    public static extern void api_test_log_msg(string text,Fix32 seconds,bool? show);

    /// <summary>
    /// API测试显示UI信息
    /// </summary>
    /// <param name="text"> 信息 </param>
    /// <param name="seconds"> 持续时间, 单位秒 </param>
    /// <returns></returns>
    public static extern void api_test_show_msg_tip(string text,Fix32 seconds);

    /// <summary>
    /// API测试-向Log添加Assert结果
    /// </summary>
    /// <param name="is_pass"> 是否通过 </param>
    /// <param name="info_str"> 信息 </param>
    /// <returns></returns>
    public static extern void api_test_add_log_assert_result(bool? is_pass,string info_str);

    /// <summary>
    /// Dialog窗口输出信息
    /// </summary>
    /// <param name="type"> 窗口等级 </param>
    /// <param name="text"> 打印信息 </param>
    /// <param name="trigger_info"> 字典 </param>
    /// <returns></returns>
    public static extern void print_to_dialog(int? type,string text,dynamic trigger_info);

    /// <summary>
    /// 向玩家显示单位对话
    /// </summary>
    /// <param name="unit"> 单位 </param>
    /// <param name="role"> 玩家 </param>
    /// <param name="text"> 信息 </param>
    /// <param name="second"> 持续时间 </param>
    /// <param name="localize"> 多语言转化 </param>
    /// <returns></returns>
    public static extern void show_unit_text_to_role(Unit unit,Role role,string text,Fix32 second,bool? localize);

    /// <summary>
    /// 向玩家左下角显示信息
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="text"> 信息 </param>
    /// <param name="localize"> 多语言转化 </param>
    /// <returns></returns>
    public static extern void show_msg_to_role(Role role,string text,bool? localize);

    /// <summary>
    /// 按阵营显示游戏结束信息
    /// </summary>
    /// <param name="camp_id"> 阵营编号 </param>
    /// <param name="result"> 结束信息 </param>
    /// <returns></returns>
    public static extern void show_game_end_ui_by_camp_id(int? camp_id,string result);

    /// <summary>
    /// 范围内随机整数
    /// </summary>
    /// <param name="min_num"> 最小值 </param>
    /// <param name="max_num"> 最大值 </param>
    /// <returns>随机整数</returns>
    public static extern int? get_random_int(int? min_num,int? max_num);

    /// <summary>
    /// 范围内随机定点数
    /// </summary>
    /// <param name="min_num"> 最小值 </param>
    /// <param name="max_num"> 最大值 </param>
    /// <returns>随机定点数</returns>
    public static extern Fix32 get_random_fixed(Fix32 min_num,Fix32 max_num);

    /// <summary>
    /// 随机角度
    /// </summary>
    /// <returns>随机定点数</returns>
    public static extern Fix32 get_random_angle();

    /// <summary>
    /// 计算公式类型KV
    /// </summary>
    /// <param name="actor"> 公式所属对象 </param>
    /// <param name="k"> key </param>
    /// <returns>值</returns>
    public static extern Fix32 api_calc_formula_kv(dynamic actor,string k);

    /// <summary>
    /// 单位组内所有状态的单位数量
    /// </summary>
    /// <param name="unit_group"> 单位组 </param>
    /// <returns>单位数量</returns>
    public static extern int? get_unit_group_num(UnitGroup unit_group);

    /// <summary>
    /// 遍历时过滤单位组
    /// </summary>
    /// <param name="unit_group"> 单位组 </param>
    /// <returns>单位组</returns>
    public static extern UnitGroup refresh_unit_group(UnitGroup unit_group);

    /// <summary>
    /// 遍历时过滤投射物组
    /// </summary>
    /// <param name="proj_group"> 投射物组 </param>
    /// <returns>投射物组</returns>
    public static extern UnitGroup refresh_projectile_group(UnitGroup proj_group);

    /// <summary>
    /// 单位组某状态的单位数量
    /// </summary>
    /// <param name="unit_group"> 单位组 </param>
    /// <param name="status"> 状态名称 </param>
    /// <returns>单位数量</returns>
    public static extern int? get_state_unit_num_in_group(UnitGroup unit_group,string status);

    /// <summary>
    /// 单位组中特定单位编号的单位数量
    /// </summary>
    /// <param name="unit_group"> 单位组 </param>
    /// <param name="unit_key"> 单位编号 </param>
    /// <returns>无符号整型</returns>
    public static extern int? get_num_of_unit_key_in_group(UnitGroup unit_group,int? unit_key);

    /// <summary>
    /// 删除单位组中某种单位
    /// </summary>
    /// <param name="unit_group"> 单位组 </param>
    /// <param name="unit_key"> 单位编号 </param>
    /// <returns></returns>
    public static extern void remove_unit_in_group_by_key(UnitGroup unit_group,int? unit_key);

    /// <summary>
    /// 删除单位组中某个单位
    /// </summary>
    /// <param name="unit_group"> 单位组 </param>
    /// <param name="unit"> 单位 </param>
    /// <returns></returns>
    public static extern void remove_unit_in_group(UnitGroup unit_group,Unit unit);

    /// <summary>
    /// 设置单位组中单位选中
    /// </summary>
    /// <param name="unit_group_id"> 单位组 </param>
    /// <returns></returns>
    public static extern void set_unit_group_selected(UnitGroup unit_group_id);

    /// <summary>
    /// 单位编号池添加单位编号
    /// </summary>
    /// <param name="pool"> 单位编号池 </param>
    /// <param name="key"> 单位编号 </param>
    /// <param name="pro"> 定点数 </param>
    /// <returns></returns>
    public static extern void unit_key_pool_add_key(int? pool,int? key,Fix32 pro);

    /// <summary>
    /// 单位编号池删除单位编号
    /// </summary>
    /// <param name="pool"> 单位编号池 </param>
    /// <param name="key"> 单位编号 </param>
    /// <returns></returns>
    public static extern void unit_key_pool_rem_key(int? pool,int? key);

    /// <summary>
    /// 单位编号池返回单位编号
    /// </summary>
    /// <param name="pool"> 单位编号池 </param>
    /// <returns>单位编号</returns>
    public static extern int? get_unit_key_from_pool(int? pool);

    /// <summary>
    /// 获取单位预设库配置的图标路径
    /// </summary>
    /// <param name="key"> 单位编号 </param>
    /// <returns>图标</returns>
    public static extern string get_unit_key_icon(int? key);

    /// <summary>
    /// 获取物品预设库配置的图标路径
    /// </summary>
    /// <param name="key"> 物品编号 </param>
    /// <returns>图标</returns>
    public static extern string get_item_key_icon(int? key);

    /// <summary>
    /// 获取单位预设库配置的图片路径
    /// </summary>
    /// <param name="key"> 单位编号 </param>
    /// <param name="pic_type"> 图片类型 </param>
    /// <returns>图片</returns>
    public static extern string get_unit_key_pic(int? key,string pic_type);

    /// <summary>
    /// 获取单位预设库配置的类型为字符串的属性
    /// </summary>
    /// <param name="unit_key"> 单位编号 </param>
    /// <param name="attr"> 属性名称 </param>
    /// <returns>字符串属性值</returns>
    public static extern string get_unit_key_str(int? unit_key,string attr);

    /// <summary>
    /// 获取单位预设库配置的类型为实数的属性
    /// </summary>
    /// <param name="unit_key"> 单位编号 </param>
    /// <param name="attr"> 属性名称 </param>
    /// <returns>实数属性值</returns>
    public static extern Fix32 get_unit_key_fixed(int? unit_key,string attr);

    /// <summary>
    /// 根据UID获取预设库配置的图标路径
    /// </summary>
    /// <param name="icon_uid"> 图标唯一ID </param>
    /// <returns>图标</returns>
    public static extern string get_icon_by_uid(string icon_uid);

    /// <summary>
    /// 获取技能预设库配置的图标路径
    /// </summary>
    /// <param name="key"> 技能编号 </param>
    /// <returns>图标</returns>
    public static extern string get_ability_key_icon(int? key);

    /// <summary>
    /// 变量长度
    /// </summary>
    /// <param name="var"> 变量 </param>
    /// <returns>变量长度</returns>
    public static extern int? len_of_var(dynamic var);

    /// <summary>
    /// 获取三维属性的slave系数
    /// </summary>
    /// <param name="pri"> 三维属性 </param>
    /// <param name="slave"> slave属性 </param>
    /// <returns>slave系数</returns>
    public static extern Fix32 get_slave_coeff(string pri,string slave);

    /// <summary>
    /// 设置三维属性的slave系数
    /// </summary>
    /// <param name="pri"> 三维属性 </param>
    /// <param name="slave"> slave属性 </param>
    /// <param name="coeff"> slave系数 </param>
    /// <returns></returns>
    public static extern void set_slave_coeff(string pri,string slave,Fix32 coeff);

    /// <summary>
    /// 攻击类型和防御类型对应的伤害系数
    /// </summary>
    /// <param name="attack_idx"> 攻击类型 </param>
    /// <param name="armor_idx"> 防御类型 </param>
    /// <returns>伤害系数</returns>
    public static extern Fix32 get_damage_ratio(int? attack_idx,int? armor_idx);

    /// <summary>
    /// 设置攻击类型和防御类型对应的伤害系数
    /// </summary>
    /// <param name="attack_idx"> 攻击类型 </param>
    /// <param name="armor_idx"> 防御类型 </param>
    /// <param name="damage_ratio"> 伤害系数 </param>
    /// <returns></returns>
    public static extern void set_damage_ratio(int? attack_idx,int? armor_idx,Fix32 damage_ratio);

    /// <summary>
    /// 应用伤害
    /// </summary>
    /// <param name="source_unit"> 伤害者 </param>
    /// <param name="ability"> 来源关联技能 </param>
    /// <param name="target_unit"> 单位或者物品 </param>
    /// <param name="damage_type"> 伤害类型 </param>
    /// <param name="damage"> 伤害值 </param>
    /// <param name="jump_word"> 是否跳字 </param>
    /// <param name="extra_context"> extra_data </param>
    /// <param name="as_normal_hit"> 视为普攻 </param>
    /// <param name="critical"> 必定暴击 </param>
    /// <returns></returns>
    public static extern void apply_damage(Unit source_unit,Ability ability,Unit target_unit,int? damage_type,Fix32 damage,bool? jump_word,dynamic extra_context,bool? as_normal_hit,bool? critical);

    /// <summary>
    /// 攻击伤害绝对值
    /// </summary>
    /// <param name="damage"> 伤害值 </param>
    /// <returns>伤害绝对值</returns>
    public static extern Fix32 get_hurt_damage(Fix32 damage);

    /// <summary>
    /// 设置当前攻击伤害的数值
    /// </summary>
    /// <param name="damage"> 伤害值 </param>
    /// <returns></returns>
    public static extern void set_cur_damage(Fix32 damage);

    /// <summary>
    /// 获取当次攻击是否闪避
    /// </summary>
    /// <param name="damage_result_state"> damage_result_state </param>
    /// <returns>伤害绝对值</returns>
    public static extern bool? get_cur_damage_is_miss(int? damage_result_state);

    /// <summary>
    /// 设置当前是否闪避
    /// </summary>
    /// <param name="is_miss"> 是否闪避 </param>
    /// <returns></returns>
    public static extern void set_cur_damage_is_miss(bool? is_miss);

    /// <summary>
    /// 设置当前治疗的数值
    /// </summary>
    /// <param name="value"> 治疗值 </param>
    /// <returns></returns>
    public static extern void set_cur_cure_value(Fix32 value);

    /// <summary>
    /// 获取当次攻击是否暴击
    /// </summary>
    /// <param name="damage_result_state"> damage_result_state </param>
    /// <returns>是否暴击</returns>
    public static extern bool? get_cur_damage_is_critical(int? damage_result_state);

    /// <summary>
    /// 设置当前是否暴击
    /// </summary>
    /// <param name="is_critical"> 是否暴击 </param>
    /// <returns></returns>
    public static extern void set_cur_damage_is_critical(bool? is_critical);

    /// <summary>
    /// 启动行为树
    /// </summary>
    /// <param name="unit"> 单位 </param>
    /// <param name="tree_name"> 行为树名称 </param>
    /// <param name="tree_args"> 行为树参数 </param>
    /// <returns></returns>
    public static extern void assign_behavior_tree(Unit unit,string tree_name,dynamic tree_args);

    /// <summary>
    /// 停止一棵行为树
    /// </summary>
    /// <param name="unit"> 单位 </param>
    /// <param name="tree_name"> 行为树名称 </param>
    /// <returns></returns>
    public static extern void stop_behavior_tree(Unit unit,string tree_name);

    /// <summary>
    /// 停止所有行为树
    /// </summary>
    /// <param name="unit"> 单位 </param>
    /// <returns></returns>
    public static extern void stop_all_behavior_tree(Unit unit);

    /// <summary>
    /// 运行一次行为树
    /// </summary>
    /// <param name="unit"> 单位 </param>
    /// <param name="tree_name"> 行为树名称 </param>
    /// <param name="tree_args"> 行为树参数 </param>
    /// <returns></returns>
    public static extern void run_behavior_tree_once(Unit unit,string tree_name,dynamic tree_args);

    /// <summary>
    /// 预设库单位删除键值对
    /// </summary>
    /// <param name="unit_key"> 单位编号 </param>
    /// <param name="key"> 键值名称 </param>
    /// <returns></returns>
    public static extern void unit_key_del_kv(int? unit_key,string key);

    /// <summary>
    /// 预设库技能删除键值对
    /// </summary>
    /// <param name="ability_key"> 技能编号 </param>
    /// <param name="key"> 键值名称 </param>
    /// <returns></returns>
    public static extern void ability_key_del_kv(int? ability_key,string key);

    /// <summary>
    /// 预设库物品删除键值对
    /// </summary>
    /// <param name="item_key"> 物品编号 </param>
    /// <param name="key"> 键值名称 </param>
    /// <returns></returns>
    public static extern void item_key_del_kv(int? item_key,string key);

    /// <summary>
    /// 设置物品商品售价
    /// </summary>
    /// <param name="item_no"> 物品编号 </param>
    /// <param name="res_type"> 资源类型 </param>
    /// <param name="price"> 售价 </param>
    /// <returns></returns>
    public static extern void set_item_buy_price(int? item_no,string res_type,double? price);

    /// <summary>
    /// 设置物品商品出售资源获得
    /// </summary>
    /// <param name="item_no"> 物品编号 </param>
    /// <param name="res_type"> 资源类型 </param>
    /// <param name="price"> 出售资源获得 </param>
    /// <returns></returns>
    public static extern void set_item_sell_price(int? item_no,string res_type,double? price);

    /// <summary>
    /// 设置单位商品售价
    /// </summary>
    /// <param name="entity_no"> 单位编号 </param>
    /// <param name="res_type"> 资源类型 </param>
    /// <param name="price"> 售价 </param>
    /// <returns></returns>
    public static extern void set_unit_buy_price(int? entity_no,string res_type,double? price);

    /// <summary>
    /// 设置单位商品出售资源获得
    /// </summary>
    /// <param name="entity_no"> 单位编号 </param>
    /// <param name="res_type"> 资源类型 </param>
    /// <param name="price"> 出售资源获得 </param>
    /// <returns></returns>
    public static extern void set_unit_sell_price(int? entity_no,string res_type,double? price);

    /// <summary>
    /// 获取物品商品售价
    /// </summary>
    /// <param name="item_no"> 物品编号 </param>
    /// <param name="res_type"> 资源类型 </param>
    /// <returns>售价</returns>
    public static extern Fix32 get_item_buy_price(int? item_no,string res_type);

    /// <summary>
    /// 获取物品商品出售资源获得
    /// </summary>
    /// <param name="item_no"> 物品编号 </param>
    /// <param name="res_type"> 资源类型 </param>
    /// <returns>出售资源获得</returns>
    public static extern Fix32 get_item_sell_price(int? item_no,string res_type);

    /// <summary>
    /// 获取单位商品售价
    /// </summary>
    /// <param name="entity_no"> 单位编号 </param>
    /// <param name="res_type"> 资源类型 </param>
    /// <returns>售价</returns>
    public static extern Fix32 get_unit_buy_price(int? entity_no,string res_type);

    /// <summary>
    /// 获取单位商品出售资源获得
    /// </summary>
    /// <param name="entity_no"> 单位编号 </param>
    /// <param name="res_type"> 资源类型 </param>
    /// <returns>出售资源获得</returns>
    public static extern Fix32 get_unit_sell_price(int? entity_no,string res_type);

    /// <summary>
    /// 返回矩形区域中心点
    /// </summary>
    /// <param name="rec"> 矩形区域 </param>
    /// <returns>中心点</returns>
    public static extern Point get_rec_center_point(RecArea rec);

    /// <summary>
    /// 返回圆形区域中心点
    /// </summary>
    /// <param name="cir"> 圆形区域 </param>
    /// <returns>中心点</returns>
    public static extern Point get_circle_center_point(CirArea cir);

    /// <summary>
    /// 返回矩形区域内随机点
    /// </summary>
    /// <param name="area"> 矩形区域 </param>
    /// <returns>随机点</returns>
    public static extern Point get_random_point_in_rec_area(RecArea area);

    /// <summary>
    /// 返回圆形区域内随机点
    /// </summary>
    /// <param name="area"> 圆形区域 </param>
    /// <returns>随机点</returns>
    public static extern Point get_random_point_in_circular_area(CirArea area);

    /// <summary>
    /// 返回多边形区域内随机点
    /// </summary>
    /// <param name="area"> 不规则区域 </param>
    /// <returns>随机点</returns>
    public static extern Point get_random_point_in_poly_area(PolyArea area);

    /// <summary>
    /// 最近创建的圆型区域
    /// </summary>
    /// <returns>圆型区域</returns>
    public static extern CirArea get_cir_area_last_created();

    /// <summary>
    /// 通过资源id返回路径
    /// </summary>
    /// <param name="res_id"> 资源ID </param>
    /// <returns>路径</returns>
    public static extern Road get_road_point_list_by_res_id(int? res_id);

    /// <summary>
    /// 在某点创建一条路径
    /// </summary>
    /// <param name="point"> 点 </param>
    /// <returns>路径</returns>
    public static extern Road create_road_point_list(Point point);

    /// <summary>
    /// 移除路径
    /// </summary>
    /// <param name="road"> 路径 </param>
    /// <returns></returns>
    public static extern void remove_road_point_list(Road road);

    /// <summary>
    /// 给路径添加点
    /// </summary>
    /// <param name="road_point_list"> 路径 </param>
    /// <param name="num"> 序号 </param>
    /// <param name="point"> 点 </param>
    /// <returns></returns>
    public static extern void add_road_point(Road road_point_list,int? num,Point point);

    /// <summary>
    /// 移除路径点
    /// </summary>
    /// <param name="road_point_list"> 路径 </param>
    /// <param name="num"> 序号 </param>
    /// <returns></returns>
    public static extern void remove_road_point(Road road_point_list,int? num);

    /// <summary>
    /// 获取路径的【起点】
    /// </summary>
    /// <param name="road_point_list"> 路径 </param>
    /// <returns>起点</returns>
    public static extern Point get_road_point_start_point(Road road_point_list);

    /// <summary>
    /// 获取路径的【终点】
    /// </summary>
    /// <param name="road_point_list"> 路径 </param>
    /// <returns>终点</returns>
    public static extern Point get_road_point_end_point(Road road_point_list);

    /// <summary>
    /// 获取路径的【随机点】
    /// </summary>
    /// <param name="road_point_list"> 路径 </param>
    /// <returns>随机点</returns>
    public static extern Point get_road_point_random_point(Road road_point_list);

    /// <summary>
    /// 获取某点的最近路径
    /// </summary>
    /// <param name="point"> 位置 </param>
    /// <returns>路径</returns>
    public static extern Road get_nearest_road_point_list_by_pos(Point point);

    /// <summary>
    /// 获取某路径偏移后的路径
    /// </summary>
    /// <param name="origin_roads"> 原始路径 </param>
    /// <param name="offset"> 偏移距离 </param>
    /// <returns>路径</returns>
    public static extern Road get_road_point_list_by_offset(Road origin_roads,Fix32 offset);

    /// <summary>
    /// 获取某路径循环n次后的路径
    /// </summary>
    /// <param name="point_list"> 原始路径 </param>
    /// <param name="n"> 循环次数 </param>
    /// <returns>路径</returns>
    public static extern Road get_road_point_list_loop(Road point_list,int? n);

    /// <summary>
    /// 获取两路径拼接后的路径
    /// </summary>
    /// <param name="pl1"> 原始路径 </param>
    /// <param name="pl2"> 原始路径 </param>
    /// <returns>路径</returns>
    public static extern Road get_road_point_list_join(Road pl1,Road pl2);

    /// <summary>
    /// 获取某路径反转后的路径
    /// </summary>
    /// <param name="point_list"> 原始路径 </param>
    /// <returns>路径</returns>
    public static extern Road get_road_point_list_inversion(Road point_list);

    /// <summary>
    /// 获取路径中点的数量
    /// </summary>
    /// <param name="road_point_list"> 路径 </param>
    /// <returns>数量</returns>
    public static extern int? get_road_point_num(Road road_point_list);

    /// <summary>
    /// 最近创建单位实体
    /// </summary>
    /// <returns>单位实体</returns>
    public static extern Unit get_last_created_unit();

    /// <summary>
    /// 最近创建子触发器
    /// </summary>
    /// <returns>子触发器ID</returns>
    public static extern int? get_last_created_trigger();

    /// <summary>
    /// 最近创建投射物
    /// </summary>
    /// <returns>投射物</returns>
    public static extern ProjectileEntity get_last_created_projectile();

    /// <summary>
    /// 得到区域内的单位id列表
    /// </summary>
    /// <param name="area"> 区域对象 </param>
    /// <returns>单位ID列表</returns>
    public static extern dynamic get_unit_group_in_area(Area area);

    /// <summary>
    /// 获取区域内玩家所有单位id列表
    /// </summary>
    /// <param name="area"> 区域对象 </param>
    /// <param name="role"> 玩家 </param>
    /// <returns>单位id列表</returns>
    public static extern UnitGroup get_unit_group_belong_to_player_in_area(Area area,Role role);

    /// <summary>
    /// 得到区域内的物品对象id列表
    /// </summary>
    /// <param name="area"> 区域对象 </param>
    /// <returns>物品组</returns>
    public static extern ItemGroup get_item_group_in_area(Area area);

    /// <summary>
    /// 获取指定形状内的所有物品
    /// </summary>
    /// <param name="point"> 区域对象 </param>
    /// <param name="shape"> 形状 </param>
    /// <param name="sort_type"> 排序类型 </param>
    /// <returns>物品组</returns>
    public static extern ItemGroup get_all_items_in_shapes(Point point,Shape shape,int? sort_type);

    /// <summary>
    /// 向ui发送附带dict的事件
    /// </summary>
    /// <param name="s"> 事件名称 </param>
    /// <param name="args"> 参数 </param>
    /// <returns></returns>
    public static extern void send_ui_global_event_with_info_dict(string s,dynamic args);

    /// <summary>
    /// 添加单位到单位组
    /// </summary>
    /// <param name="unit"> 单位 </param>
    /// <param name="unit_group"> 单位组 </param>
    /// <returns></returns>
    public static extern void add_unit_to_group(Unit unit,UnitGroup unit_group);

    /// <summary>
    /// 批量设置全局触发器数组变量
    /// </summary>
    /// <param name="table"> 组合列表，格式为[[数组变量名称，类型（'INTEGER', 'BOOLEAN', 'FLOAT', 'STRING'），列表值（[值，值，......]）],[.....]] </param>
    /// <returns></returns>
    public static extern void set_trigger_table_list_variable(dynamic table);

    /// <summary>
    /// 通过分割字符串设置字符串数组
    /// </summary>
    /// <param name="key"> 字符串数组 </param>
    /// <param name="actor"> 类型提示 </param>
    /// <param name="content"> 分割内容 </param>
    /// <param name="split"> 分割符 </param>
    /// <returns></returns>
    public static extern void set_trigger_str_list_by_split(dynamic key,dynamic actor,string content,string split);

    /// <summary>
    /// 创建全局触发器数组变量
    /// </summary>
    /// <param name="key"> 数组变量名称 </param>
    /// <param name="var_type"> 值类型 </param>
    /// <param name="arr_val"> 列表型值 </param>
    /// <returns></returns>
    public static extern void create_trigger_list_variable(string key,string var_type,dynamic arr_val);

    /// <summary>
    /// 单位编号是否拥有tag
    /// </summary>
    /// <param name="key"> 单位编号 </param>
    /// <param name="tag"> tag </param>
    /// <returns>布尔值</returns>
    public static extern bool? unit_key_has_tag(int? key,string tag);

    /// <summary>
    /// 物品编号是否拥有tag
    /// </summary>
    /// <param name="key"> 物品编号 </param>
    /// <param name="tag"> tag </param>
    /// <returns>布尔值</returns>
    public static extern bool? item_key_has_tag(int? key,string tag);

    /// <summary>
    /// 技能编号是否拥有tag
    /// </summary>
    /// <param name="key"> 技能编号 </param>
    /// <param name="tag"> tag </param>
    /// <returns>布尔值</returns>
    public static extern bool? ability_key_has_tag(int? key,string tag);

    /// <summary>
    /// 效果编号是否拥有tag
    /// </summary>
    /// <param name="key"> 技能编号 </param>
    /// <param name="tag"> tag </param>
    /// <returns>布尔值</returns>
    public static extern bool? modifier_key_has_tag(int? key,string tag);

    /// <summary>
    /// 投射物编号是否拥有tag
    /// </summary>
    /// <param name="key"> 投射物编号 </param>
    /// <param name="tag"> tag </param>
    /// <returns>布尔值</returns>
    public static extern bool? projectile_key_has_tag(int? key,string tag);

    /// <summary>
    /// 可破坏物编号是否拥有tag
    /// </summary>
    /// <param name="key"> 可破坏物编号 </param>
    /// <param name="tag"> tag </param>
    /// <returns>布尔值</returns>
    public static extern bool? dest_key_has_tag(int? key,string tag);

    /// <summary>
    /// 单位实体是否存在
    /// </summary>
    /// <param name="unit"> 单位实体 </param>
    /// <returns>布尔值</returns>
    public static extern bool? unit_is_exist(Unit unit);

    /// <summary>
    /// 效果实体是否存在
    /// </summary>
    /// <param name="modifier"> 效果实体 </param>
    /// <returns>布尔值</returns>
    public static extern bool? modifier_is_exist(ModifierEntity modifier);

    /// <summary>
    /// 投射物实体是否存在
    /// </summary>
    /// <param name="projectile"> 投射物 </param>
    /// <returns>布尔值</returns>
    public static extern bool? projectile_is_exist(ProjectileEntity projectile);

    /// <summary>
    /// 技能实体是否存在
    /// </summary>
    /// <param name="ability"> 技能 </param>
    /// <returns>布尔值</returns>
    public static extern bool? ability_is_exist(Ability ability);

    /// <summary>
    /// 可破坏物是否存在
    /// </summary>
    /// <param name="destructible"> 可破坏物 </param>
    /// <returns>布尔值</returns>
    public static extern bool? destructible_is_exist(Destructible destructible);

    /// <summary>
    /// 图片是否存在
    /// </summary>
    /// <param name="item"> 图片key </param>
    /// <returns>布尔值</returns>
    public static extern bool? item_is_exist(Item item);

    /// <summary>
    /// 单位组是否存在
    /// </summary>
    /// <param name="unit_group"> 单位组 </param>
    /// <returns>是否存在</returns>
    public static extern bool? unit_group_is_exist(UnitGroup unit_group);

    /// <summary>
    /// 玩家组是否存在
    /// </summary>
    /// <param name="role_group"> 玩家组 </param>
    /// <returns>是否存在</returns>
    public static extern bool? role_group_is_exist(RoleGroup role_group);

    /// <summary>
    /// 特效是否存在
    /// </summary>
    /// <param name="sfx"> 特效 </param>
    /// <returns>是否存在</returns>
    public static extern bool? sfx_is_exist(Sfx sfx);

    /// <summary>
    /// 点是否存在
    /// </summary>
    /// <param name="point"> 点 </param>
    /// <returns>是否存在</returns>
    public static extern bool? point_is_exist(Point point);

    /// <summary>
    /// 路径是否存在
    /// </summary>
    /// <param name="point_list"> 路径 </param>
    /// <returns>是否存在</returns>
    public static extern bool? point_list_is_exist(Road point_list);

    /// <summary>
    /// 圆形区域是否存在
    /// </summary>
    /// <param name="circle_area"> 圆形区域 </param>
    /// <returns>是否存在</returns>
    public static extern bool? circle_area_is_exist(CirArea circle_area);

    /// <summary>
    /// 矩形区域是否存在
    /// </summary>
    /// <param name="rect_area"> 矩形区域 </param>
    /// <returns>是否存在</returns>
    public static extern bool? rect_area_is_exist(RecArea rect_area);

    /// <summary>
    /// 镜头是否存在
    /// </summary>
    /// <param name="camera"> 镜头 </param>
    /// <returns>是否存在</returns>
    public static extern bool? camera_is_exist(Camera camera);

    /// <summary>
    /// 获取技能最大等级
    /// </summary>
    /// <param name="ability"> 技能 </param>
    /// <returns>最大等级</returns>
    public static extern int? get_ability_max_level(Ability ability);

    /// <summary>
    /// 列表中返回随机整数个元素组成的列表
    /// </summary>
    /// <param name="list1"> 列表 </param>
    /// <param name="n"> 整数个 </param>
    /// <returns>随机生成的列表</returns>
    public static extern dynamic random_list_from_list(dynamic list1,int? n);

    /// <summary>
    /// 震动设备
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="time"> 震动时间 </param>
    /// <returns></returns>
    public static extern void shake_phone(Role role,Fix32 time);

    /// <summary>
    /// 为<玩家>输入排行榜<分数>
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="score"> 战斗内排行榜分数 </param>
    /// <returns></returns>
    public static extern void set_role_rank_score(Role role,int? score);

    /// <summary>
    /// 单位触发器向全局触发器发送事件, 附带信息
    /// </summary>
    /// <param name="event_name"> 事件名称 </param>
    /// <param name="i"> 整型值 </param>
    /// <param name="f"> 定点型值 </param>
    /// <param name="b"> 布尔型值 </param>
    /// <param name="s"> 字符串型值 </param>
    /// <param name="p"> 浮点数点型值 </param>
    /// <param name="u"> 单位对象 </param>
    /// <returns></returns>
    public static extern void unit_send_global_event_with_info(string event_name,int? i,Fix32 f,bool? b,string s,Point p,Unit u);

    /// <summary>
    /// 技能触发器向全局触发器发送事件, 附带信息
    /// </summary>
    /// <param name="event_name"> 事件名称 </param>
    /// <param name="i"> 整型值 </param>
    /// <param name="f"> 定点型值 </param>
    /// <param name="b"> 布尔型值 </param>
    /// <param name="s"> 字符串型值 </param>
    /// <param name="p"> 浮点数点型值 </param>
    /// <param name="u"> 单位对象 </param>
    /// <returns></returns>
    public static extern void ability_send_global_event_with_info(string event_name,int? i,Fix32 f,bool? b,string s,Point p,Unit u);

    /// <summary>
    /// 效果触发器向全局触发器发送事件, 附带信息
    /// </summary>
    /// <param name="event_name"> 事件名称 </param>
    /// <param name="i"> 整型值 </param>
    /// <param name="f"> 定点型值 </param>
    /// <param name="b"> 布尔型值 </param>
    /// <param name="s"> 字符串型值 </param>
    /// <param name="p"> 浮点数点型值 </param>
    /// <param name="u"> 单位对象 </param>
    /// <returns></returns>
    public static extern void modifier_send_global_event_with_info(string event_name,int? i,Fix32 f,bool? b,string s,Point p,Unit u);

    /// <summary>
    /// 投射物触发器向全局触发器发送事件, 附带信息
    /// </summary>
    /// <param name="event_name"> 事件名称 </param>
    /// <param name="i"> 整型值 </param>
    /// <param name="f"> 定点型值 </param>
    /// <param name="b"> 布尔型值 </param>
    /// <param name="s"> 字符串型值 </param>
    /// <param name="p"> 浮点数点型值 </param>
    /// <param name="u"> 单位对象 </param>
    /// <returns></returns>
    public static extern void projectile_send_global_event_with_info(string event_name,int? i,Fix32 f,bool? b,string s,Point p,Unit u);

    /// <summary>
    /// 物品触发器向全局触发器发送事件, 附带信息
    /// </summary>
    /// <param name="event_name"> 事件名称 </param>
    /// <param name="i"> 整型值 </param>
    /// <param name="f"> 定点型值 </param>
    /// <param name="b"> 布尔型值 </param>
    /// <param name="s"> 字符串型值 </param>
    /// <param name="p"> 浮点数点型值 </param>
    /// <param name="u"> 单位对象 </param>
    /// <returns></returns>
    public static extern void item_send_global_event_with_info(string event_name,int? i,Fix32 f,bool? b,string s,Point p,Unit u);

    /// <summary>
    /// 获取[玩家]的玩家昵称
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <returns>玩家昵称</returns>
    public static extern string get_player_nick_name(Role role);

    /// <summary>
    /// 获取[玩家]的玩家全量昵称
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <returns>玩家全量昵称</returns>
    public static extern string get_player_full_nick_name(Role role);

    /// <summary>
    /// 获取[玩家]的玩家aid
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <returns>玩家aid</returns>
    public static extern string get_player_plat_aid(Role role);

    /// <summary>
    /// 获取[玩家]的玩家图像
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <returns>玩家图像</returns>
    public static extern string get_player_icon(Role role);

    /// <summary>
    /// 筛选单位删除状态
    /// </summary>
    /// <param name="unit"> 单位 </param>
    /// <returns>有效单位对象</returns>
    public static extern Unit filter_unit_status(Unit unit);

    /// <summary>
    /// 为玩家打开收费道具商店
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <returns></returns>
    public static extern void open_charge_item_store_for_role(Role role);

    /// <summary>
    /// 当前游戏运行时间
    /// </summary>
    /// <returns>时间</returns>
    public static extern Fix32 get_cur_game_time();

    /// <summary>
    /// 检查点到点是否联通
    /// </summary>
    /// <param name="unit"> 寻路单位 </param>
    /// <param name="pointa"> 起点 </param>
    /// <param name="pointb"> 终点 </param>
    /// <returns>是否联通</returns>
    public static extern bool? can_point_reach_point(Unit unit,Point pointa,Point pointb);

    /// <summary>
    /// 检测点是否和单位碰撞
    /// </summary>
    /// <param name="unit"> 单位 </param>
    /// <param name="point"> 点 </param>
    /// <param name="radius"> 范围 </param>
    /// <returns>是否碰撞</returns>
    public static extern bool? unit_can_collide_with_point(Unit unit,Point point,double? radius);

    /// <summary>
    /// 通过技能序列号获取技能
    /// </summary>
    /// <param name="unit"> 单位 </param>
    /// <param name="ability_seq"> 技能序列号 </param>
    /// <returns>技能对象</returns>
    public static extern Ability api_get_ability_by_seq(Unit unit,int? ability_seq);

    /// <summary>
    /// 通过单位编号+技能序列号获取技能
    /// </summary>
    /// <param name="unit_id"> 单位ID </param>
    /// <param name="ability_seq"> 技能序列号 </param>
    /// <returns>技能对象</returns>
    public static extern Ability api_get_ability_by_unit_and_seq(int? unit_id,int? ability_seq);

    /// <summary>
    /// 获取【单位组】中伤害排名【整数】的单位实体
    /// </summary>
    /// <param name="unit_group"> 单位组 </param>
    /// <param name="rank"> 排名 </param>
    /// <returns>单位</returns>
    public static extern Unit get_damage_statistic_rank_unit(UnitGroup unit_group,int? rank);

    /// <summary>
    /// 获取选择圈缩放
    /// </summary>
    /// <param name="unit"> 单位 </param>
    /// <returns>缩放</returns>
    public static extern Fix32 get_select_circle_scale(Unit unit);

    /// <summary>
    /// 删除模型
    /// </summary>
    /// <param name="model"> 模型 </param>
    /// <returns></returns>
    public static extern void delete_model_entity(Model model);

    /// <summary>
    /// 创建展示模型，面向点，朝向实数
    /// </summary>
    /// <param name="model_res_id"> 模型名称 </param>
    /// <param name="position"> 点 </param>
    /// <param name="rotation"> 朝向 </param>
    /// <returns>模型</returns>
    public static extern Model create_model_on_point(int? model_res_id,Point position,double? rotation);

    /// <summary>
    /// 创建模型
    /// </summary>
    /// <param name="model_key"> 模型编号 </param>
    /// <param name="pos"> 点 </param>
    /// <param name="face"> 朝向 </param>
    /// <returns>模型</returns>
    public static extern Model create_model_in_scene(int? model_key,Point pos,Fix32 face);

    /// <summary>
    /// 销毁模型
    /// </summary>
    /// <param name="model"> 模型 </param>
    /// <returns></returns>
    public static extern void destroy_model_in_scene(Model model);

    /// <summary>
    /// 返回指定物品名字的字符串属性值
    /// </summary>
    /// <param name="key"> 物品编号 </param>
    /// <param name="name"> 属性名 </param>
    /// <returns>字符</returns>
    public static extern string get_item_key_str_attr(int? key,string name);

    /// <summary>
    /// 强制踢出玩家
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="reason"> 踢出理由 </param>
    /// <returns></returns>
    public static extern void role_force_quit(Role role,string reason);

    /// <summary>
    /// 修改某点的地形纹理
    /// </summary>
    /// <param name="position"> 指定点 </param>
    /// <param name="texture_type"> 纹理类型 </param>
    /// <param name="radius"> 范围 </param>
    /// <param name="area_shape"> 区域类型 </param>
    /// <returns></returns>
    public static extern void modify_point_texture(Point position,int? texture_type,int? radius,int? area_shape);

    /// <summary>
    /// 修改某点的地形高度
    /// </summary>
    /// <param name="position"> 指定点 </param>
    /// <param name="terrain_height"> 高度 </param>
    /// <param name="radius"> 范围 </param>
    /// <param name="area_shape"> 区域类型 </param>
    /// <returns></returns>
    public static extern void modify_point_height(Point position,int? terrain_height,int? radius,int? area_shape);

    /// <summary>
    /// 替换区域中的指定地形纹理
    /// </summary>
    /// <param name="area"> 区域 </param>
    /// <param name="texture_type"> 纹理类型 </param>
    /// <param name="new_texture_type"> 新纹理类型 </param>
    /// <returns></returns>
    public static extern void replace_point_texture(Area area,int? texture_type,int? new_texture_type);

    /// <summary>
    /// 获取纹理类型
    /// </summary>
    /// <param name="position"> 点 </param>
    /// <returns>纹理类型</returns>
    public static extern int? get_texture_type(Point position);

    /// <summary>
    /// 设置矩形区域内视野情况
    /// </summary>
    /// <param name="rect_area"> 矩形区域 </param>
    /// <param name="player"> 玩家 </param>
    /// <param name="is_vision"> 布尔变量 </param>
    /// <param name="is_vision_true"> 布尔变量 </param>
    /// <returns>矩形区域</returns>
    public static extern RecArea set_rect_vision_visibility(RecArea rect_area,Role player,bool? is_vision,bool? is_vision_true);

    /// <summary>
    /// 设置区域内视野情况
    /// </summary>
    /// <param name="area"> 区域 </param>
    /// <param name="player"> 玩家 </param>
    /// <param name="fog_state"> 迷雾状态 </param>
    /// <param name="is_vision_true"> 布尔变量 </param>
    /// <returns></returns>
    public static extern void set_fog_state(Area area,Role player,int? fog_state,bool? is_vision_true);

    /// <summary>
    /// 设置圆形区域内视野情况
    /// </summary>
    /// <param name="circle_area"> 圆形区域 </param>
    /// <param name="player"> 玩家 </param>
    /// <param name="is_vision"> 布尔变量 </param>
    /// <param name="is_vision_true"> 布尔变量 </param>
    /// <returns>圆形区域</returns>
    public static extern CirArea set_circle_vision_visibility(CirArea circle_area,Role player,bool? is_vision,bool? is_vision_true);

    /// <summary>
    /// 设置多边形区域内视野情况
    /// </summary>
    /// <param name="poly_area"> 多边形区域 </param>
    /// <param name="player"> 玩家 </param>
    /// <param name="is_vision"> 布尔变量 </param>
    /// <param name="is_vision_true"> 布尔变量 </param>
    /// <returns>多边形区域</returns>
    public static extern PolyArea set_poly_vision_visibility(PolyArea poly_area,Role player,bool? is_vision,bool? is_vision_true);

    /// <summary>
    /// 创建随机池
    /// </summary>
    /// <returns>随机池</returns>
    public static extern RandomPool create_random_pool();

    /// <summary>
    /// 设置随机池指定整数权重
    /// </summary>
    /// <param name="random_pool"> 随机池 </param>
    /// <param name="value"> 整型 </param>
    /// <param name="weight"> 整型 </param>
    /// <returns></returns>
    public static extern void set_random_pool_value(RandomPool random_pool,int? value,int? weight);

    /// <summary>
    /// 随机池增加指定整数权重
    /// </summary>
    /// <param name="random_pool"> 随机池 </param>
    /// <param name="value"> 整型 </param>
    /// <param name="increment"> 整型 </param>
    /// <returns></returns>
    public static extern void increase_random_pool_value(RandomPool random_pool,int? value,int? increment);

    /// <summary>
    /// 随机池移除指定整数
    /// </summary>
    /// <param name="random_pool"> 随机池 </param>
    /// <param name="value"> 整型 </param>
    /// <returns></returns>
    public static extern void remove_random_pool_value(RandomPool random_pool,int? value);

    /// <summary>
    /// 从随机池中获取一个随机整数
    /// </summary>
    /// <param name="random_pool"> 随机池 </param>
    /// <param name="remain"> 布尔 </param>
    /// <returns>整数</returns>
    public static extern int? get_bitrary_random_pool_value(RandomPool random_pool,bool? remain);

    /// <summary>
    /// 获取随机池中指定整数的权重概率
    /// </summary>
    /// <param name="random_pool"> 随机池 </param>
    /// <param name="value"> 整数 </param>
    /// <returns>权重概率</returns>
    public static extern double? get_random_pool_probability(RandomPool random_pool,int? value);

    /// <summary>
    /// 获取随机池中指定整数的权重概率
    /// </summary>
    /// <param name="random_pool"> 随机池 </param>
    /// <returns>总权重</returns>
    public static extern int? get_random_pool_all_weight(RandomPool random_pool);

    /// <summary>
    /// 获取随机池中的整数数量
    /// </summary>
    /// <param name="random_pool"> 随机池 </param>
    /// <returns>整数数量</returns>
    public static extern int? get_random_pool_size(RandomPool random_pool);

    /// <summary>
    /// 复制随机池
    /// </summary>
    /// <param name="random_pool"> 随机池 </param>
    /// <returns>随机池</returns>
    public static extern RandomPool copy_random_pool(RandomPool random_pool);

    /// <summary>
    /// 成长属性
    /// </summary>
    /// <param name="entity_no"> 单位编号 </param>
    /// <param name="attr"> 属性名 </param>
    /// <returns>属性值</returns>
    public static extern Fix32 api_get_attr_growth(int? entity_no,string attr);

    /// <summary>
    /// 设置成长属性
    /// </summary>
    /// <param name="entity_no"> 单位编号 </param>
    /// <param name="attr"> 属性名 </param>
    /// <param name="value"> 属性值 </param>
    /// <returns></returns>
    public static extern void api_set_attr_growth(int? entity_no,string attr,Fix32 value);

    /// <summary>
    /// 获取某个随机池的列表
    /// </summary>
    /// <param name="random_pool"> 随机池 </param>
    /// <returns>整数</returns>
    public static extern int? get_all_random_pool_value(RandomPool random_pool);

    /// <summary>
    /// 获取某个随机池中指定整数的权重
    /// </summary>
    /// <param name="random_pool"> 随机池 </param>
    /// <param name="value"> 整数 </param>
    /// <returns>整数</returns>
    public static extern int? get_random_pool_pointed_weight(RandomPool random_pool,int? value);

    /// <summary>
    /// 翻译字符串
    /// </summary>
    /// <param name="string"> 字符串 </param>
    /// <returns>翻译后的字符串</returns>
    public static extern string get_text_config(string @string);

    /// <summary>
    /// 发送触发器自定义事件
    /// </summary>
    /// <param name="event_name"> 自定义事件名称 </param>
    /// <param name="p1"> 参数1 </param>
    /// <param name="p2"> 参数2 </param>
    /// <param name="p3"> 参数3 </param>
    /// <param name="p4"> 参数4 </param>
    /// <param name="p5"> 参数5 </param>
    /// <returns></returns>
    public static extern void send_custom_event(string event_name,int? p1,int? p2,int? p3,int? p4,int? p5);

    /// <summary>
    /// 设置小地图替代图片
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="image_id"> 图片id </param>
    /// <returns></returns>
    public static extern void change_mini_map_img(Role role,int? image_id);

    /// <summary>
    /// 设置小地图替代图片(图片类型)
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="image_id"> 图片 </param>
    /// <returns></returns>
    public static extern void change_mini_map_img_with_icon(Role role,int? image_id);

    /// <summary>
    /// 设置小地图颜色显示模式
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="color_type"> 显示模式 </param>
    /// <returns></returns>
    public static extern void change_mini_map_color_type(Role role,int? color_type);

    /// <summary>
    /// 开启绘制单位路径线
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="unit"> 单位 </param>
    /// <returns></returns>
    public static extern void enable_unit_path_drawing(Role role,Unit unit);

    /// <summary>
    /// 关闭绘制单位路径线
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="unit"> 单位 </param>
    /// <returns></returns>
    public static extern void disable_unit_path_drawing(Role role,Unit unit);

    /// <summary>
    /// 设置小地图显示区域
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="rect_area"> 矩形区域 </param>
    /// <returns></returns>
    public static extern void set_min_map_show_area(Role role,RecArea rect_area);

    /// <summary>
    /// 获取icon图标的图片id
    /// </summary>
    /// <param name="parameter"> 对象 </param>
    /// <returns>图片id</returns>
    public static extern int? get_icon_id(dynamic parameter);

    /// <summary>
    /// 获取技能icon图标的图片id
    /// </summary>
    /// <param name="key"> 技能编号 </param>
    /// <returns>图片id</returns>
    public static extern int? get_icon_id_by_ability_type(int? key);

    /// <summary>
    /// 获取物品icon图标的图片id
    /// </summary>
    /// <param name="key"> 物品编号 </param>
    /// <returns>图片id</returns>
    public static extern int? get_icon_id_by_item_type(int? key);

    /// <summary>
    /// 获取单位icon图标的图片id
    /// </summary>
    /// <param name="key"> 单位编号 </param>
    /// <returns>图片id</returns>
    public static extern int? get_icon_id_by_unit_type(int? key);

    /// <summary>
    /// 获取魔法效果icon图标的图片id
    /// </summary>
    /// <param name="key"> 魔法效果编号 </param>
    /// <returns>图片id</returns>
    public static extern int? get_icon_id_by_buff_type(int? key);

    /// <summary>
    /// 获取魔法效果类型图标的可见性
    /// </summary>
    /// <param name="key"> 魔法效果编号 </param>
    /// <returns>布尔值</returns>
    public static extern bool? is_show_on_ui_by_buff_type(int? key);

    /// <summary>
    /// 生成漂浮文字
    /// </summary>
    /// <param name="point"> 点 </param>
    /// <param name="text_type"> 跳字枚举 </param>
    /// <param name="value"> 跳字内容 </param>
    /// <param name="player_group"> 玩家组 </param>
    /// <param name="jump_word_track"> 跳字轨迹 </param>
    /// <returns></returns>
    public static extern void create_harm_text(Point point,int text_type,string value,RoleGroup player_group);

    /// <summary>
    /// 玩家是否按下按键
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="key"> 键盘按键 </param>
    /// <returns>按下状态</returns>
    public static extern bool? player_key_is_pressed(Role role,int? key);

    /// <summary>
    /// 玩家鼠标位置
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <returns>鼠标位置</returns>
    public static extern Point get_player_pointing_pos(Role role);

    /// <summary>
    /// 玩家鼠标屏幕位置X
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <returns>鼠标屏幕位置X</returns>
    public static extern int? get_player_ui_pos_x(Role role);

    /// <summary>
    /// 玩家鼠标屏幕位置Y
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <returns>鼠标屏幕位置Y</returns>
    public static extern int? get_player_ui_pos_y(Role role);

    /// <summary>
    /// 玩家摄像机朝向
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <returns>摄像机朝向</returns>
    public static extern Point get_player_camera_direction(Role role);

    /// <summary>
    /// 玩家摄像机中心射线检测
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <returns>交点</returns>
    public static extern Point get_camera_center_raycast(Role role);

    /// <summary>
    /// 玩家鼠标屏幕位置X的窗口占比
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <returns>占比值</returns>
    public static extern Fix32 get_role_ui_x_per(Role role);

    /// <summary>
    /// 玩家鼠标屏幕位置Y的窗口占比
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <returns>占比值</returns>
    public static extern Fix32 get_role_ui_y_per(Role role);

    /// <summary>
    /// 返回指定单位类型的名称
    /// </summary>
    /// <param name="unit_key"> 单位类型 </param>
    /// <returns>描述</returns>
    public static extern string get_unit_name_by_type(int? unit_key);

    /// <summary>
    /// 返回指定单位类型的描述
    /// </summary>
    /// <param name="unit_key"> 单位类型 </param>
    /// <returns>描述</returns>
    public static extern string get_unit_desc_by_type(int? unit_key);

    /// <summary>
    /// 获取单位类型建造资源消耗属性(玩家属性)
    /// </summary>
    /// <param name="unit_key"> 单位类型 </param>
    /// <param name="role_res_key"> 玩家属性 </param>
    /// <returns>玩家属性值</returns>
    public static extern int? get_role_attr_by_unit_type(int? unit_key,string role_res_key);

    /// <summary>
    /// 返回指定可破坏物类型的名称
    /// </summary>
    /// <param name="dest_key"> 可破坏物ID </param>
    /// <returns>描述</returns>
    public static extern string get_dest_name_by_type(int? dest_key);

    /// <summary>
    /// 返回指定可破坏物类型的描述
    /// </summary>
    /// <param name="dest_key"> 可破坏物ID </param>
    /// <returns>描述</returns>
    public static extern string get_dest_desc_by_type(int? dest_key);

    /// <summary>
    /// 返回指定投射物类型的名称
    /// </summary>
    /// <param name="projectile_key"> 投射物ID </param>
    /// <returns>描述</returns>
    public static extern string get_projectile_name_by_type(int? projectile_key);

    /// <summary>
    /// 返回指定投射物类型的描述
    /// </summary>
    /// <param name="projectile_key"> 投射物ID </param>
    /// <returns>描述</returns>
    public static extern string get_projectile_desc_by_type(int? projectile_key);

    /// <summary>
    /// 返回指定物品类型的描述
    /// </summary>
    /// <param name="item_key"> 物品ID </param>
    /// <returns>描述</returns>
    public static extern string get_item_desc_by_type(int? item_key);

    /// <summary>
    /// 返回指定技能类型的描述
    /// </summary>
    /// <param name="ability_key"> 技能ID </param>
    /// <returns>描述</returns>
    public static extern string get_ability_desc_by_type(int? ability_key);

    /// <summary>
    /// 返回指定技能类型的名称
    /// </summary>
    /// <param name="ability_key"> 技能ID </param>
    /// <returns>名称</returns>
    public static extern string get_ability_name_by_type(int? ability_key);

    /// <summary>
    /// 返回指定科技类型的名称
    /// </summary>
    /// <param name="tech_key"> 科技ID </param>
    /// <returns>名称</returns>
    public static extern string get_tech_name_by_type(int? tech_key);

    /// <summary>
    /// 返回指定科技类型的描述
    /// </summary>
    /// <param name="tech_key"> 科技ID </param>
    /// <returns>描述</returns>
    public static extern string get_tech_desc_by_type(int? tech_key);

    /// <summary>
    /// 返回指定魔法效果类型的名称
    /// </summary>
    /// <param name="modifier_key"> 魔法效果ID </param>
    /// <returns>描述</returns>
    public static extern string get_modifier_name_by_type(int? modifier_key);

    /// <summary>
    /// 返回指定魔法效果类型的描述
    /// </summary>
    /// <param name="modifier_key"> 魔法效果ID </param>
    /// <returns>描述</returns>
    public static extern string get_modifier_desc_by_type(int? modifier_key);

    /// <summary>
    /// 返回指定物品类型的名字
    /// </summary>
    /// <param name="item_key"> 物品ID </param>
    /// <returns>名字</returns>
    public static extern string get_item_name_by_type(int? item_key);

    /// <summary>
    /// 屏蔽全局键盘事件
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="block"> 是否屏蔽 </param>
    /// <returns></returns>
    public static extern void block_global_key_event(Role role,bool? block);

    /// <summary>
    /// 屏蔽全局鼠标事件
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="block"> 是否屏蔽 </param>
    /// <returns></returns>
    public static extern void block_global_mouse_event(Role role,bool? block);

    /// <summary>
    /// 屏蔽触发器键盘事件
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="block"> 是否屏蔽 </param>
    /// <returns></returns>
    public static extern void block_trigger_key_event(Role role,bool? block);

    /// <summary>
    /// 屏蔽触发器鼠标事件
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="block"> 是否屏蔽 </param>
    /// <returns></returns>
    public static extern void block_trigger_mouse_event(Role role,bool? block);

    /// <summary>
    /// 获取玩家属性Icon
    /// </summary>
    /// <param name="res_key"> 玩家属性 </param>
    /// <returns>图片ID</returns>
    public static extern int? get_role_res_icon(string res_key);

    /// <summary>
    /// 获取玩家属性名称
    /// </summary>
    /// <param name="res_key"> 玩家属性 </param>
    /// <returns>属性名称</returns>
    public static extern string get_role_res_name(string res_key);

    /// <summary>
    /// (调试)绘制网格线
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="start_x"> 起点x </param>
    /// <param name="start_y"> 起点y </param>
    /// <param name="height"> 高度 </param>
    /// <param name="space"> 间距 </param>
    /// <param name="line_count"> 线数 </param>
    /// <param name="r"> r </param>
    /// <param name="g"> g </param>
    /// <param name="b"> b </param>
    /// <returns></returns>
    public static extern void draw_grid_polyline(Role role,double? start_x,double? start_y,double? height,double? space,int? line_count,int? r,int? g,int? b);

    /// <summary>
    /// (调试)绘线
    /// </summary>
    /// <param name="point_list"> 点 </param>
    /// <param name="height"> 高度 </param>
    /// <param name="r"> r </param>
    /// <param name="g"> g </param>
    /// <param name="b"> b </param>
    /// <returns>索引</returns>
    public static extern int? draw_polyline(dynamic point_list,double? height,int? r,int? g,int? b);

    /// <summary>
    /// (调试)绘制矩形
    /// </summary>
    /// <param name="point_list"> 点 </param>
    /// <returns></returns>
    public static extern void draw_box(dynamic point_list);

    /// <summary>
    /// (调试)隐藏所有矩形
    /// </summary>
    /// <returns></returns>
    public static extern void hide_all_rect();

    /// <summary>
    /// (调试)清除调试绘线
    /// </summary>
    /// <param name="index"> 索引 </param>
    /// <returns></returns>
    public static extern void clear_grid_polyline(int? index);

    /// <summary>
    /// (调试)设置billboard字体大小
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="size"> 大小 </param>
    /// <returns></returns>
    public static extern void set_billboard_font_size(Role role,int? size);

    /// <summary>
    /// 设置鼠标关闭右键点击移动
    /// </summary>
    /// <param name="b"> 开关 </param>
    /// <returns></returns>
    public static extern void set_mouse_click_control_move(bool? b);

    /// <summary>
    /// 遍历所有玩家的资源属性
    /// </summary>
    /// <param name="is_iter_coin_only"> 是否遍历货币类型 </param>
    /// <returns>资源属性列表</returns>
    public static extern dynamic iter_role_res(bool? is_iter_coin_only);

    /// <summary>
    /// 创建场景点并绑定UI到点
    /// </summary>
    /// <param name="comp_name"> 控件名 </param>
    /// <param name="point"> 点 </param>
    /// <param name="visible_dis"> 可见距离 </param>
    /// <param name="height_offset"> 离地高度 </param>
    /// <returns>场景点</returns>
    public static extern SceneNode create_scene_node_on_point(string comp_name,Point point,double? visible_dis,double? height_offset);

    /// <summary>
    /// 创建场景点并绑定UI到单位
    /// </summary>
    /// <param name="comp_name"> 控件名 </param>
    /// <param name="player"> 玩家 </param>
    /// <param name="unit"> 单位 </param>
    /// <param name="socket_name"> 挂接点 </param>
    /// <param name="visible_dis"> 可见距离 </param>
    /// <returns>场景点</returns>
    public static extern SceneNode create_scene_node_on_unit(string comp_name,Role player,Unit unit,string socket_name,double? visible_dis);

    /// <summary>
    /// 创建场景点并绑定UI到三维坐标
    /// </summary>
    /// <param name="comp_name"> 控件名 </param>
    /// <param name="position"> 三维坐标 </param>
    /// <param name="visible_dis"> 可见距离 </param>
    /// <returns>场景点</returns>
    public static extern SceneNode create_scene_node_on_3d(string comp_name,Point position,double? visible_dis);

    /// <summary>
    /// 创建场景界面到刚体
    /// </summary>
    /// <param name="comp_name"> 控件名 </param>
    /// <param name="body"> 刚体 </param>
    /// <param name="offset"> 偏移量 </param>
    /// <param name="visible_dis"> 可见距离 </param>
    /// <returns>场景点</returns>
    public static extern SceneNode create_scene_node_on_rigid_body(string comp_name,dynamic body,Point offset,double? visible_dis);

    /// <summary>
    /// 设置场景点对玩家的可见距离
    /// </summary>
    /// <param name="scene_node"> 场景点 </param>
    /// <param name="player"> 玩家 </param>
    /// <param name="visible_dis"> 可见距离 </param>
    /// <returns></returns>
    public static extern void set_scene_node_visible_distance(SceneNode scene_node,Role player,double? visible_dis);

    /// <summary>
    /// 删除场景点
    /// </summary>
    /// <param name="scene_node_entity"> 场景点 </param>
    /// <returns></returns>
    public static extern void delete_scene_node(SceneNode scene_node_entity);

    /// <summary>
    /// 单位类型转字符串
    /// </summary>
    /// <param name="val"> 单位编号 </param>
    /// <returns>字符串</returns>
    public static extern string unit_key_to_str(int? val);

    /// <summary>
    /// 字符串转单位类型
    /// </summary>
    /// <param name="val"> 字符串 </param>
    /// <returns>单位编号</returns>
    public static extern int? str_to_unit_key(string val);

    /// <summary>
    /// 物品类型转字符串
    /// </summary>
    /// <param name="val"> 物品编号 </param>
    /// <returns>字符串</returns>
    public static extern string item_key_to_str(int? val);

    /// <summary>
    /// 字符串转物品类型
    /// </summary>
    /// <param name="val"> 字符串 </param>
    /// <returns>物品编号</returns>
    public static extern int? str_to_item_key(string val);

    /// <summary>
    /// 技能类型转字符串
    /// </summary>
    /// <param name="val"> 技能编号 </param>
    /// <returns>字符串</returns>
    public static extern string ability_key_to_str(int? val);

    /// <summary>
    /// 字符串转技能类型
    /// </summary>
    /// <param name="val"> 字符串 </param>
    /// <returns>技能编号</returns>
    public static extern int? str_to_ability_key(string val);

    /// <summary>
    /// 可破坏物类型转字符串
    /// </summary>
    /// <param name="obj"> 可破坏物编号 </param>
    /// <returns>字符串</returns>
    public static extern string dest_key_to_str(int? obj);

    /// <summary>
    /// 字符串转可破坏物类型
    /// </summary>
    /// <param name="obj"> 字符串 </param>
    /// <returns>可破坏物编号</returns>
    public static extern int? str_to_dest_key(string obj);

    /// <summary>
    /// 投射物类型转字符串
    /// </summary>
    /// <param name="obj"> 投射物编号 </param>
    /// <returns>字符串</returns>
    public static extern string project_key_to_str(int? obj);

    /// <summary>
    /// 字符串转投射物类型
    /// </summary>
    /// <param name="obj"> 字符串 </param>
    /// <returns>投射物编号</returns>
    public static extern int? str_to_project_key(string obj);

    /// <summary>
    /// 科技类型转字符串
    /// </summary>
    /// <param name="val"> 科技编号 </param>
    /// <returns>字符串</returns>
    public static extern string tech_key_to_str(int? val);

    /// <summary>
    /// 字符串转科技类型
    /// </summary>
    /// <param name="val"> 字符串 </param>
    /// <returns>科技编号</returns>
    public static extern int? str_to_tech_key(string val);

    /// <summary>
    /// 模型实体转字符串
    /// </summary>
    /// <param name="obj"> 模型实体 </param>
    /// <returns>字符串</returns>
    public static extern string model_entity_to_str(dynamic obj);

    /// <summary>
    /// 模型类型转字符串
    /// </summary>
    /// <param name="val"> 模型编号 </param>
    /// <returns>字符串</returns>
    public static extern string model_key_to_str(int? val);

    /// <summary>
    /// 字符串转模型类型
    /// </summary>
    /// <param name="val"> 字符串 </param>
    /// <returns>模型编号</returns>
    public static extern int? str_to_model_key(string val);

    /// <summary>
    /// 魔法效果类型转字符串
    /// </summary>
    /// <param name="val"> 效果编号 </param>
    /// <returns>字符串</returns>
    public static extern string modifier_key_to_str(int? val);

    /// <summary>
    /// 字符串转魔法效果类型
    /// </summary>
    /// <param name="val"> 字符串 </param>
    /// <returns>效果编号</returns>
    public static extern int? str_to_modifier_key(string val);

    /// <summary>
    /// 平台道具类型转字符串
    /// </summary>
    /// <param name="obj"> 平台道具类型 </param>
    /// <returns>字符串</returns>
    public static extern string store_key_to_str(int? obj);

    /// <summary>
    /// 字符串转平台道具类型
    /// </summary>
    /// <param name="obj"> 字符串 </param>
    /// <returns>平台道具类型</returns>
    public static extern int? str_to_store_key(string obj);

    /// <summary>
    /// 镜头转字符串
    /// </summary>
    /// <param name="id_value"> 镜头 </param>
    /// <returns>字符串</returns>
    public static extern string camera_to_str(Camera id_value);

    /// <summary>
    /// 声音转字符串
    /// </summary>
    /// <param name="obj"> 声音对象 </param>
    /// <returns>字符串</returns>
    public static extern string sound_entity_to_str(SoundEntity obj);

    /// <summary>
    /// 声音类型转字符串
    /// </summary>
    /// <param name="obj"> 音效编号 </param>
    /// <returns>字符串</returns>
    public static extern string audio_key_to_str(int? obj);

    /// <summary>
    /// 字符串转声音类型
    /// </summary>
    /// <param name="obj"> 字符串 </param>
    /// <returns>音效编号</returns>
    public static extern int? str_to_audio_key(string obj);

    /// <summary>
    /// 界面组件转字符串
    /// </summary>
    /// <param name="obj"> 组件名称 </param>
    /// <returns>字符串</returns>
    public static extern string ui_comp_to_str(string obj);

    /// <summary>
    /// 玩家属性转字符串
    /// </summary>
    /// <param name="val"> 资源类型 </param>
    /// <returns>字符串</returns>
    public static extern string role_res_to_str(string val);

    /// <summary>
    /// 字符串转玩家属性
    /// </summary>
    /// <param name="val"> 字符串 </param>
    /// <returns>资源类型</returns>
    public static extern string str_to_role_res(string val);

    /// <summary>
    /// 单位属性转字符串
    /// </summary>
    /// <param name="val"> 属性名称 </param>
    /// <returns>字符串</returns>
    public static extern string unit_attr_to_str(string val);

    /// <summary>
    /// 字符串转单位属性
    /// </summary>
    /// <param name="val"> 字符串 </param>
    /// <returns>单位属性</returns>
    public static extern string str_to_unit_attr(string val);

    /// <summary>
    /// 字符串转阵营对象
    /// </summary>
    /// <param name="obj"> 字符串 </param>
    /// <returns>阵营对象</returns>
    public static extern Camp str_to_camp(string obj);

    /// <summary>
    /// 获取可破坏物类型的模型
    /// </summary>
    /// <param name="dest_key"> 字符串 </param>
    /// <returns>模型编号</returns>
    public static extern int? get_model_key_of_dest_key(int? dest_key);

    /// <summary>
    /// 为玩家设置滤镜效果
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="value"> id </param>
    /// <returns></returns>
    public static extern void set_role_color_grading(Role role,int? value);

    /// <summary>
    /// 设置背景音乐开关
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="value"> 打开/关闭 </param>
    /// <returns></returns>
    public static extern void open_background_music(Role role,bool? value);

    /// <summary>
    /// 设置战斗音乐开关
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="value"> 打开/关闭 </param>
    /// <returns></returns>
    public static extern void open_battle_music(Role role,bool? value);

    /// <summary>
    /// 设置背景音乐音量
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="value"> 音量 </param>
    /// <returns></returns>
    public static extern void set_background_music_volume(Role role,int? value);

    /// <summary>
    /// 设置战斗音效音量
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="value"> 音量 </param>
    /// <returns></returns>
    public static extern void set_battle_music_volume(Role role,int? value);

    /// <summary>
    /// 设置分辨率
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="x_resolution"> 横向分辨率 </param>
    /// <param name="y_resolution"> 纵向分辨率 </param>
    /// <returns></returns>
    public static extern void set_screen_resolution(Role role,double? x_resolution,double? y_resolution);

    /// <summary>
    /// 设置画质
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="quality"> 画质 </param>
    /// <returns></returns>
    public static extern void set_image_quality(Role role,string quality);

    /// <summary>
    /// 设置窗口
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="window_type"> 样式 </param>
    /// <returns></returns>
    public static extern void set_window_type(Role role,string window_type);

    /// <summary>
    /// 开关目标点的草丛
    /// </summary>
    /// <param name="enable"> 开关 </param>
    /// <param name="point"> 点 </param>
    /// <returns></returns>
    public static extern void set_grass_enable_by_pos(bool? enable,Point point);

    /// <summary>
    /// 为玩家开关全局视野
    /// </summary>
    /// <param name="enable"> 开关 </param>
    /// <returns></returns>
    public static extern void enable_fow_for_player(bool? enable);

    /// <summary>
    /// 获取初始化游戏画质
    /// </summary>
    /// <returns>value</returns>
    public static extern string get_graphics_quality();

    /// <summary>
    /// 获取初始化窗口类别
    /// </summary>
    /// <returns>value</returns>
    public static extern string get_window_mode();

    /// <summary>
    /// 获取初始化横向分辨率
    /// </summary>
    /// <returns>value</returns>
    public static extern int? get_game_x_resolution();

    /// <summary>
    /// 获取初始化纵向分辨率
    /// </summary>
    /// <returns>value</returns>
    public static extern int? get_game_y_resolution();

    /// <summary>
    /// 当前窗体横向尺寸
    /// </summary>
    /// <returns>value</returns>
    public static extern int? get_window_real_x_size();

    /// <summary>
    /// 当前窗体纵向尺寸
    /// </summary>
    /// <returns>value</returns>
    public static extern int? get_window_real_y_size();

    /// <summary>
    /// 获取屏幕横向分辨率
    /// </summary>
    /// <returns>value</returns>
    public static extern int? get_screen_x_resolution();

    /// <summary>
    /// 获取屏幕纵向分辨率
    /// </summary>
    /// <returns>value</returns>
    public static extern int? get_screen_y_resolution();

    /// <summary>
    /// 获取初始化背景音乐开关状态
    /// </summary>
    /// <returns>value</returns>
    public static extern bool? get_bgm_state();

    /// <summary>
    /// 获取初始化战斗音效开关状态
    /// </summary>
    /// <returns>value</returns>
    public static extern bool? get_battle_bgm_state();

    /// <summary>
    /// 获取初始化背景音乐音量
    /// </summary>
    /// <returns>value</returns>
    public static extern int? get_bgm_volume();

    /// <summary>
    /// 获取初始化战斗音效音量
    /// </summary>
    /// <returns>value</returns>
    public static extern int? get_battle_volume();

    /// <summary>
    /// 设置声音音量
    /// </summary>
    /// <param name="player"> 玩家 </param>
    /// <param name="sound"> 声音 </param>
    /// <param name="volume"> 音量 </param>
    /// <returns></returns>
    public static extern void set_sound_volume(Role player,SoundEntity sound,int? volume);

    /// <summary>
    /// 打开/关闭自动施法
    /// </summary>
    /// <param name="player"> 玩家 </param>
    /// <param name="is_open"> 是否打开 </param>
    /// <returns></returns>
    public static extern void set_smart_cast_ability(Role player,bool? is_open);

    /// <summary>
    /// 设置{玩家}的普攻预览状态为{开启/关闭}
    /// </summary>
    /// <param name="player"> 玩家 </param>
    /// <param name="is_open"> 是否打开 </param>
    /// <returns></returns>
    public static extern void set_preview_common_atk_range(Role player,bool? is_open);

    /// <summary>
    /// 是否让{玩家}的智能施法使用指示器
    /// </summary>
    /// <param name="player"> 玩家 </param>
    /// <param name="use_skill_pointer"> 是否使用指示器 </param>
    /// <returns></returns>
    public static extern void set_smart_cast_with_pointer(Role player,bool? use_skill_pointer);

    /// <summary>
    /// 设置快捷键
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="plan"> 方案 </param>
    /// <param name="key"> 快捷键key </param>
    /// <param name="value1"> 键盘码1 </param>
    /// <param name="value2"> 键盘码2 </param>
    /// <returns></returns>
    public static extern void set_shortcut(Role role,int? plan,string key,int? value1,int? value2);

    /// <summary>
    /// 获取快捷键
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="plan"> 方案 </param>
    /// <param name="key"> 快捷键key </param>
    /// <returns>键盘码</returns>
    public static extern dynamic get_shortcut(Role role,int? plan,string key);

    /// <summary>
    /// 设置智能施法
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="value"> 开启/关闭 </param>
    /// <returns></returns>
    public static extern void set_simple_cast(Role role,bool? value);

    /// <summary>
    /// 获取智能施法
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <returns>是否智能施法</returns>
    public static extern bool? get_simple_cast(Role role);

    /// <summary>
    /// 获取客户端智能施法
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <returns>是否智能施法</returns>
    public static extern bool? get_client_simple_cast(Role role);

    /// <summary>
    /// 保存编辑器局内设置
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <returns></returns>
    public static extern void save_client_setting(Role role);

    /// <summary>
    /// 保存玩家设置
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <returns></returns>
    public static extern void save_game_setting(Role role);

    /// <summary>
    /// 获取本地玩家
    /// </summary>
    /// <returns>玩家</returns>
    public static extern Role get_client_role();

    /// <summary>
    /// 修改玩家的地表纹理
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="bool_value"> 布尔值 </param>
    /// <returns></returns>
    public static extern void set_local_terrain_visible(Role role,bool? bool_value);

    /// <summary>
    /// 修改材质属性
    /// </summary>
    /// <param name="obj"> 对象 </param>
    /// <param name="material_id"> 材质id </param>
    /// <param name="r_value"> R </param>
    /// <param name="g_value"> G </param>
    /// <param name="b_value"> B </param>
    /// <param name="intensity"> 强度 </param>
    /// <param name="alpha"> 透明度 </param>
    /// <returns></returns>
    public static extern void set_material_param(dynamic obj,int? material_id,double? r_value,double? g_value,double? b_value,double? intensity,double? alpha);

    /// <summary>
    /// 设置鼠标移动镜头模式
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="value"> 开启/关闭 </param>
    /// <returns></returns>
    public static extern void set_mouse_move_camera_mode(Role role,bool? value);

    /// <summary>
    /// 设置鼠标移动镜头速度
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="value"> 移动速度 </param>
    /// <returns></returns>
    public static extern void set_mouse_move_camera_speed(Role role,double? value);

    /// <summary>
    /// 设置键盘移动镜头速度
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="value"> 移动速度 </param>
    /// <returns></returns>
    public static extern void set_key_move_camera_speed(Role role,double? value);

    /// <summary>
    /// 修改玩家主控单位
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="unit"> 单位 </param>
    /// <returns></returns>
    public static extern void change_highlight_unit_of_role(Role role,Unit unit);

    /// <summary>
    /// 玩家主控单位
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="unit"> 单位 </param>
    /// <returns></returns>
    public static extern void set_highlight_unit_of_role(Role role,Unit unit);

    /// <summary>
    /// 获取玩家主控单位
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <returns></returns>
    public static extern void get_highlight_unit_of_role(Role role);

    /// <summary>
    /// 获取本局游戏环境
    /// </summary>
    /// <returns>游戏环境</returns>
    public static extern int? api_get_start_mode();

    /// <summary>
    /// 攻击类型判断
    /// </summary>
    /// <param name="attack_type0"> 攻击类型 </param>
    /// <param name="attack_type1"> 攻击类型 </param>
    /// <returns>攻击类型判断</returns>
    public static extern bool? api_check_attack_type(int? attack_type0,int? attack_type1);

    /// <summary>
    /// 护甲类型判断
    /// </summary>
    /// <param name="armor_type0"> 护甲类型 </param>
    /// <param name="armor_type1"> 护甲类型 </param>
    /// <returns>护甲类型判断</returns>
    public static extern bool? api_check_armor_type(int? armor_type0,int? armor_type1);

    /// <summary>
    /// 天气系统开关
    /// </summary>
    /// <param name="weatherID"> 天气ID </param>
    /// <param name="time"> 时间 </param>
    /// <param name="intensity"> 强度 </param>
    /// <returns></returns>
    public static extern void set_weahter_enable(int? weatherID,double? time,double? intensity);

    /// <summary>
    /// 获取玩家平台头像
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <returns>图片ID</returns>
    public static extern int? get_role_platform_icon(Role role);

    /// <summary>
    /// 获取玩家平台模型
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <returns>模型编号</returns>
    public static extern int? get_role_platform_model(Role role);

    /// <summary>
    /// 创建界面模块
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="distance_max"> 高度上限值 </param>
    /// <returns></returns>
    public static extern void set_camera_distance_max(Role role,double? distance_max);

    /// <summary>
    /// 设置画风
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="post_style_type"> 画风 </param>
    /// <param name="color_r"> R </param>
    /// <param name="color_g"> R </param>
    /// <param name="color_b"> R </param>
    /// <param name="depth_scale"> 描边 </param>
    /// <param name="intensity"> 强度 </param>
    /// <returns></returns>
    public static extern void set_post_effect(Role role,Camera post_style_type,int? color_r,int? color_g,int? color_b,double? depth_scale,double? intensity);

    /// <summary>
    /// 级联阴影开关
    /// </summary>
    /// <param name="is_enable"> 开关 </param>
    /// <returns></returns>
    public static extern void set_cascaded_shadow_enable(bool? is_enable);

    /// <summary>
    /// 级联阴影层数
    /// </summary>
    /// <param name="levels"> 层数 </param>
    /// <returns></returns>
    public static extern void set_dynamic_shadow_cascades(int? levels);

    /// <summary>
    /// 级联阴影距离
    /// </summary>
    /// <param name="distance"> 距离 </param>
    /// <returns></returns>
    public static extern void set_dynamic_shadow_distance_movable_light(double? distance);

    /// <summary>
    /// 阴影距离
    /// </summary>
    /// <param name="distance"> 距离 </param>
    /// <returns></returns>
    public static extern void set_cascaded_shadow_distance(double? distance);

    /// <summary>
    /// 获取级联阴影状态
    /// </summary>
    /// <returns>状态</returns>
    public static extern bool? get_cascaded_shadow_enable();

    /// <summary>
    /// 获取级联阴影层数
    /// </summary>
    /// <returns>层数</returns>
    public static extern int? get_dynamic_shadow_cascades();

    /// <summary>
    /// 获取级联阴影距离
    /// </summary>
    /// <returns>距离</returns>
    public static extern double? get_dynamic_shadow_distance_movable_light();

    /// <summary>
    /// 获取阴影距离
    /// </summary>
    /// <returns>距离</returns>
    public static extern double? get_cascaded_shadow_distance();

    /// <summary>
    /// 通过场景声音ID返回场景声音
    /// </summary>
    /// <param name="res_id"> 场景声音ID </param>
    /// <returns>场景声音</returns>
    public static extern dynamic get_scene_sound_by_res_id(int? res_id);

    /// <summary>
    /// 播放场景声音
    /// </summary>
    /// <param name="scene_sound"> 场景声音 </param>
    /// <returns></returns>
    public static extern void play_scene_sound(dynamic scene_sound);

    /// <summary>
    /// 停止场景声音
    /// </summary>
    /// <param name="scene_sound"> 场景声音 </param>
    /// <returns></returns>
    public static extern void stop_scene_sound(dynamic scene_sound);

    /// <summary>
    /// 设置场景声音是否循环
    /// </summary>
    /// <param name="scene_sound"> 场景声音 </param>
    /// <param name="loop"> 是否循环 </param>
    /// <returns></returns>
    public static extern void set_scene_sound_loop(dynamic scene_sound,bool? loop);

    /// <summary>
    /// 设置场景声音衰减距离
    /// </summary>
    /// <param name="scene_sound"> 场景声音 </param>
    /// <param name="min_dist"> 衰减距离 </param>
    /// <returns></returns>
    public static extern void set_scene_sound_min_dist(dynamic scene_sound,double? min_dist);

    /// <summary>
    /// 设置场景声音静音距离
    /// </summary>
    /// <param name="scene_sound"> 场景声音 </param>
    /// <param name="max_dist"> 静音距离 </param>
    /// <returns></returns>
    public static extern void set_scene_sound_max_dist(dynamic scene_sound,double? max_dist);

    /// <summary>
    /// 设置场景声音是否暂停
    /// </summary>
    /// <param name="scene_sound"> 场景声音 </param>
    /// <param name="paused"> 是否暂停 </param>
    /// <returns></returns>
    public static extern void set_scene_sound_pause(dynamic scene_sound,bool? paused);

    /// <summary>
    /// 注册区域的附近语音频道
    /// </summary>
    /// <param name="area"> 区域 </param>
    /// <returns></returns>
    public static extern void reg_sound_area(Area area);

    /// <summary>
    /// 反注册区域的附近语音频道
    /// </summary>
    /// <param name="area"> 区域 </param>
    /// <returns></returns>
    public static extern void unreg_sound_area(Area area);

    /// <summary>
    /// 设置附近语音的区域模式开关
    /// </summary>
    /// <param name="b"> 区域模式开关 </param>
    /// <returns></returns>
    public static extern void set_nearby_voice_mode(bool? b);

    /// <summary>
    /// 退出游戏
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <returns></returns>
    public static extern void exit_game(Role role);

    /// <summary>
    /// 创建一个物理投射物
    /// </summary>
    /// <param name="p_key"> 投射物编号 </param>
    /// <param name="position"> 位置 </param>
    /// <param name="rotation"> 朝向 </param>
    /// <param name="owner_unit_or_player"> 所属单位 </param>
    /// <param name="duration"> 持续时间 </param>
    /// <returns>创建出的投射物</returns>
    public static extern ProjectileEntity create_physics_projectile_in_scene(int? p_key,Point position,Point rotation,Unit owner_unit_or_player,Fix32 duration);

    /// <summary>
    /// 获取单位类型的模型
    /// </summary>
    /// <param name="unit_key"> 单位类型编号 </param>
    /// <returns>模型编号</returns>
    public static extern int? api_get_unit_type_model(int? unit_key);

    /// <summary>
    /// 获取单位类型的分类
    /// </summary>
    /// <param name="unit_key"> 单位类型编号 </param>
    /// <returns>类型</returns>
    public static extern int? api_get_unit_type_category(int? unit_key);

    /// <summary>
    /// 玩家本地图平台等级排行榜玩家名称
    /// </summary>
    /// <param name="rank"> 排名 </param>
    /// <returns>玩家名称</returns>
    public static extern string api_get_role_name_of_rank(int? rank);

    /// <summary>
    /// 玩家本地图平台等级排行榜玩家等级
    /// </summary>
    /// <param name="rank"> 排名 </param>
    /// <returns>玩家等级</returns>
    public static extern int? api_get_role_level_of_rank(int? rank);

    /// <summary>
    /// 设置玩家发言频道
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="channel"> 频道 </param>
    /// <returns></returns>
    public static extern void set_audio_chat_channel(Role role,int? channel);

    /// <summary>
    /// 关闭localplayer的表现层跳字
    /// </summary>
    /// <param name="is_close"> 是否关闭 </param>
    /// <returns></returns>
    public static extern void set_local_player_jump_word_close(bool? is_close);

    /// <summary>
    /// 设置对象的基础材质属性
    /// </summary>
    /// <param name="logic_obj"> 逻辑对象 </param>
    /// <param name="color_r"> R </param>
    /// <param name="color_g"> G </param>
    /// <param name="color_b"> B </param>
    /// <param name="color_a"> A </param>
    /// <param name="base_model_opacity"> model_opacity </param>
    /// <returns></returns>
    public static extern void api_change_obj_base_color(dynamic logic_obj,int? color_r,int? color_g,int? color_b,int? color_a,int? base_model_opacity);

    /// <summary>
    /// 修改雾效属性新
    /// </summary>
    /// <param name="fog"> 雾 </param>
    /// <param name="fog_attr"> 雾效属性 </param>
    /// <param name="value"> 值 </param>
    /// <returns></returns>
    public static extern void set_fog_attr_new(Fog fog,string fog_attr,double? value);

    /// <summary>
    /// 遍历物品类型的物品合成材料
    /// </summary>
    /// <param name="item_key"> 物品类型 </param>
    /// <returns></returns>
    public static extern void iter_compose_item_res_of_item_name(int? item_key);

    /// <summary>
    /// 遍历物品类型的玩家合成材料
    /// </summary>
    /// <param name="item_key"> 物品类型 </param>
    /// <returns></returns>
    public static extern void iter_compose_role_attr_of_item_name(int? item_key);

    /// <summary>
    /// 玩家组内随机一个玩家
    /// </summary>
    /// <param name="roles"> 玩家组 </param>
    /// <returns>玩家</returns>
    public static extern Role get_random_role_in_role_group(RoleGroup roles);

    /// <summary>
    /// 玩家组内第一个玩家
    /// </summary>
    /// <param name="roles"> 玩家组 </param>
    /// <returns>第一个玩家</returns>
    public static extern Role get_first_role_in_group(RoleGroup roles);

    /// <summary>
    /// 玩家组内最后一个玩家
    /// </summary>
    /// <param name="roles"> 玩家组 </param>
    /// <returns>最后一个玩家</returns>
    public static extern Role get_last_role_in_group(RoleGroup roles);

    /// <summary>
    /// 遍历物品类型的单位属性
    /// </summary>
    /// <param name="item_key"> 物品类型 </param>
    /// <returns></returns>
    public static extern void iter_unit_attr_of_item_name(int? item_key);

    /// <summary>
    /// 遍历物品的单位属性
    /// </summary>
    /// <param name="item"> 物品 </param>
    /// <returns></returns>
    public static extern void iter_unit_attr_of_item(Item item);

    /// <summary>
    /// 设置对象的菲涅尔效果开关
    /// </summary>
    /// <param name="log_obj"> 对象 </param>
    /// <param name="visible"> 开关 </param>
    /// <returns></returns>
    public static extern void api_set_obj_fresnel_visible(dynamic log_obj,bool? visible);

    /// <summary>
    /// 设置对象的菲涅尔效果
    /// </summary>
    /// <param name="log_obj"> 对象 </param>
    /// <param name="color_r"> R </param>
    /// <param name="color_g"> G </param>
    /// <param name="color_b"> B </param>
    /// <param name="alpha"> alpha </param>
    /// <param name="exp"> exp </param>
    /// <param name="strength"> strength </param>
    /// <returns></returns>
    public static extern void api_set_obj_fresnel_parameters(dynamic log_obj,int? color_r,int? color_g,int? color_b,double? alpha,double? exp,double? strength);

    /// <summary>
    /// 获取区域的场景ID
    /// </summary>
    /// <param name="area"> 区域 </param>
    /// <returns>场景ID</returns>
    public static extern int? get_area_resource_id(Area area);

    /// <summary>
    /// 获取路径的场景ID
    /// </summary>
    /// <param name="road"> 路径 </param>
    /// <returns>场景ID</returns>
    public static extern int? get_road_resource_id(Road road);

    /// <summary>
    /// 设置模型加载范围
    /// </summary>
    /// <param name="focus_distance"> 范围 </param>
    /// <returns></returns>
    public static extern void set_focus_distance(double? focus_distance);

    /// <summary>
    /// 设置血条图片
    /// </summary>
    /// <param name="unit"> 单位 </param>
    /// <param name="node_name"> 血条命名 </param>
    /// <param name="image_id"> 图片 </param>
    /// <param name="role"> 玩家 </param>
    /// <returns></returns>
    public static extern void set_billboard_picture(Unit unit,string node_name,int? image_id,Role role);

    /// <summary>
    /// 设置血条文本
    /// </summary>
    /// <param name="unit"> 单位 </param>
    /// <param name="node_name"> 血条命名 </param>
    /// <param name="text"> 文本 </param>
    /// <param name="role"> 玩家 </param>
    /// <param name="font"> 字体 </param>
    /// <returns></returns>
    public static extern void set_billboard_text(Unit unit,string node_name,string text,Role role,string font);

    /// <summary>
    /// 设置血条可见性
    /// </summary>
    /// <param name="unit"> 单位 </param>
    /// <param name="node_name"> 血条命名 </param>
    /// <param name="visible"> 可见性 </param>
    /// <param name="role"> 玩家 </param>
    /// <returns></returns>
    public static extern void set_billboard_visible(Unit unit,string node_name,bool? visible,Role role);

}

public class Map
{
}